Node2D ​
Inherits: CanvasItem < Node < Object
Inherited By: AnimatedSprite2D, AudioListener2D, AudioStreamPlayer2D, BackBufferCopy, Bone2D, Camera2D, CanvasGroup, CanvasModulate, CollisionObject2D, CollisionPolygon2D, CollisionShape2D, CPUParticles2D, GPUParticles2D, Joint2D, Light2D, LightOccluder2D, Line2D, Marker2D, MeshInstance2D, MultiMeshInstance2D, NavigationLink2D, NavigationObstacle2D, NavigationRegion2D, Parallax2D, ParallaxLayer, Path2D, PathFollow2D, Polygon2D, RayCast2D, RemoteTransform2D, ShapeCast2D, Skeleton2D, Sprite2D, TileMap, TileMapLayer, TouchScreenButton, VisibleOnScreenNotifier2D
A 2D game object, inherited by all 2D-related nodes. Has a position, rotation, scale, and Z index.
Description
A 2D game object, with a transform (position, rotation, and scale). All 2D nodes, including physics objects and sprites, inherit from Node2D. Use Node2D as a parent node to move, scale and rotate children in a 2D project. Also gives control of the node's render order.
Tutorials
Properties
Vector2(0, 0) | ||
0.0 | ||
Vector2(1, 1) | ||
0.0 | ||
Methods
void | apply_scale(ratio: Vector2) |
get_angle_to(point: Vector2) const | |
get_relative_transform_to_parent(parent: Node) const | |
void | global_translate(offset: Vector2) |
void | |
void | move_local_x(delta: float, scaled: bool = false) |
void | move_local_y(delta: float, scaled: bool = false) |
void | |
void |
Property Descriptions
Global position.
Global rotation in radians.
float global_rotation_degrees 🔗
Helper property to access global_rotation in degrees instead of radians.
Global scale.
Global skew in radians.
Transform2D global_transform 🔗
void set_global_transform(value: Transform2D)
Transform2D get_global_transform()
Global Transform2D.
Vector2 position = Vector2(0, 0) 🔗
Position, relative to the node's parent.
Rotation in radians, relative to the node's parent.
Note: This property is edited in the inspector in degrees. If you want to use degrees in a script, use rotation_degrees.
Helper property to access rotation in degrees instead of radians.
Vector2 scale = Vector2(1, 1) 🔗
The node's scale. Unscaled value: (1, 1)
.
Note: Negative X scales in 2D are not decomposable from the transformation matrix. Due to the way scale is represented with transformation matrices in Godot, negative scales on the X axis will be changed to negative scales on the Y axis and a rotation of 180 degrees when decomposed.
Slants the node.
Note: Skew is X axis only.
Transform2D transform 🔗
void set_transform(value: Transform2D)
Transform2D get_transform()
Local Transform2D.
Method Descriptions
void apply_scale(ratio: Vector2) 🔗
Multiplies the current scale by the ratio
vector.
float get_angle_to(point: Vector2) const 🔗
Returns the angle between the node and the point
in radians.
Illustration of the returned angle.
Transform2D get_relative_transform_to_parent(parent: Node) const 🔗
Returns the Transform2D relative to this node's parent.
void global_translate(offset: Vector2) 🔗
Adds the offset
vector to the node's global position.
void look_at(point: Vector2) 🔗
Rotates the node so that its local +X axis points towards the point
, which is expected to use global coordinates.
point
should not be the same as the node's position, otherwise the node always looks to the right.
void move_local_x(delta: float, scaled: bool = false) 🔗
Applies a local translation on the node's X axis based on the Node._process's delta
. If scaled
is false
, normalizes the movement.
void move_local_y(delta: float, scaled: bool = false) 🔗
Applies a local translation on the node's Y axis based on the Node._process's delta
. If scaled
is false
, normalizes the movement.
void rotate(radians: float) 🔗
Applies a rotation to the node, in radians, starting from its current rotation.
Vector2 to_global(local_point: Vector2) const 🔗
Transforms the provided local position into a position in global coordinate space. The input is expected to be local relative to the Node2D it is called on. e.g. Applying this method to the positions of child nodes will correctly transform their positions into the global coordinate space, but applying it to a node's own position will give an incorrect result, as it will incorporate the node's own transformation into its global position.
Vector2 to_local(global_point: Vector2) const 🔗
Transforms the provided global position into a position in local coordinate space. The output will be local relative to the Node2D it is called on. e.g. It is appropriate for determining the positions of child nodes, but it is not appropriate for determining its own position relative to its parent.
void translate(offset: Vector2) 🔗
Translates the node by the given offset
in local coordinates.