system
March 25, 2019, 6:10am
1
Attention
Topic was automatically imported from the old Question2Answer platform.
Asked By
soulldev
Hello, if i had a parent node that has a child, like this :
Parent
Child
The Parent node has position(x,y), how can i get the position of the parent node in the child node, in GDScript i can use get_owner(), but i need to do it in GDNative.
1 Like
system
March 25, 2019, 10:59am
2
Reply From:
atopetrick
You can use get_parent() to access parent node from child node.
print(get_parent().name) # Will print parent node
print(get_parent().position) # Will print parent node position
I’m using Godot 3.0.
Hope this will helpful
system
February 5, 2021, 6:46am
3
Reply From:
Binsk
I realize I’m late here but for anyone else’s reference:
Your GDNative class should still have the function get_parent() if it inherits from the godot::Node class.
So let’s say you wished to perform the following (GDScript version):
var parent : Node = get_parent()
print(parent.name)
The GDNative equivalent would be:
godot::Node* parent = get_parent();
godot::Godot::print(parent -> get_name());
When I’m a little lost I find it useful to check the header files for GDNative. In the case of Node.hpp it would be in godot_cpp/include/gen/Node.hpp.
In your case, if you have position(x, y) and know the node is a / is a child of Node2D then you could simply perform:
godot::Node2D* parent = get_parent();
godot::Vector2 pos = parent -> get_position();
godot::Godot::print(pos);