Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Node2D

继承: CanvasItem < Node < Object

派生: 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

2D 游戏对象,被所有 2D 相关的节点继承。具有位置、旋转、缩放和 Z 索引。

描述

2D 游戏对象,具有变换(位置、旋转、缩放)。所有的 2D 节点,包括物理对象和精灵,都继承自 Node2D。使用 Node2D 作为父节点来移动、缩放和旋转 2D 项目中的子节点。还可以控制节点的渲染顺序。

教程

属性

Vector2

global_position

float

global_rotation

float

global_rotation_degrees

Vector2

global_scale

float

global_skew

Transform2D

global_transform

Vector2

position

Vector2(0, 0)

float

rotation

0.0

float

rotation_degrees

Vector2

scale

Vector2(1, 1)

float

skew

0.0

Transform2D

transform

方法

void

apply_scale(ratio: Vector2)

float

get_angle_to(point: Vector2) const

Transform2D

get_relative_transform_to_parent(parent: Node) const

void

global_translate(offset: Vector2)

void

look_at(point: Vector2)

void

move_local_x(delta: float, scaled: bool = false)

void

move_local_y(delta: float, scaled: bool = false)

void

rotate(radians: float)

Vector2

to_global(local_point: Vector2) const

Vector2

to_local(global_point: Vector2) const

void

translate(offset: Vector2)


属性说明

Vector2 global_position 🔗

  • void set_global_position(value: Vector2)

  • Vector2 get_global_position()

全局位置。


float global_rotation 🔗

  • void set_global_rotation(value: float)

  • float get_global_rotation()

全局旋转,单位为弧度。


float global_rotation_degrees 🔗

  • void set_global_rotation_degrees(value: float)

  • float get_global_rotation_degrees()

辅助属性,用于按度数访问 global_rotation 而不是弧度数。


Vector2 global_scale 🔗

全局缩放。


float global_skew 🔗

  • void set_global_skew(value: float)

  • float get_global_skew()

全局偏斜,单位为弧度。


Transform2D global_transform 🔗

全局 Transform2D


Vector2 position = Vector2(0, 0) 🔗

位置,相对于父节点。


float rotation = 0.0 🔗

  • void set_rotation(value: float)

  • float get_rotation()

旋转,单位为弧度,相对于该节点的父节点。

注意:这个属性在检查器中是以度数编辑的。如果你想在脚本中使用度数,请使用 rotation_degrees


float rotation_degrees 🔗

  • void set_rotation_degrees(value: float)

  • float get_rotation_degrees()

辅助属性,用于按度数访问 rotation 而不是弧度数。


Vector2 scale = Vector2(1, 1) 🔗

该节点的缩放。未缩放值:(1, 1)

注意:2D 中,变换矩阵是无法分解出负数的 X 缩放的。由于 Godot 中使用变换矩阵来表示缩放,X 轴上的负数缩放在分解后会变为 Y 轴的负数缩放和一次 180 度的旋转。


float skew = 0.0 🔗

使该节点发生倾斜。

注意:偏斜仅适用于 X 轴。


Transform2D transform 🔗

局部 Transform2D


方法说明

void apply_scale(ratio: Vector2) 🔗

将当前缩放乘以比例向量 ratio


float get_angle_to(point: Vector2) const 🔗

返回该节点和 point 之间的夹角,单位为弧度。

返回夹角的示意图。


Transform2D get_relative_transform_to_parent(parent: Node) const 🔗

返回相对于此节点的父节点的 Transform2D


void global_translate(offset: Vector2) 🔗

将偏移向量 offset 添加到该节点的全局位置。


void look_at(point: Vector2) 🔗

旋转该节点,使其局部 X 轴的正方向指向 point,该参数应使用全局坐标。

point 不应该与该节点的位置相同,否则该节点始终看向右侧。


void move_local_x(delta: float, scaled: bool = false) 🔗

基于 Node._processdelta,在节点的 X 轴上应用局部平移。如果 scaledfalse,则对移动进行归一化。


void move_local_y(delta: float, scaled: bool = false) 🔗

基于 Node._processdelta,在节点的 Y 轴上应用局部平移。如果 scaledfalse,则对移动进行归一化。


void rotate(radians: float) 🔗

从节点的当前旋转开始,以弧度为单位,对节点进行旋转。


Vector2 to_global(local_point: Vector2) const 🔗

将提供的本地位置转换为全局坐标空间的位置。例如,对子节点的位置应用这个方法将正确地把它们的位置转换到全局坐标空间,但对节点自己的位置应用这个方法将得到一个不正确的结果,因为它将把节点自己的变换纳入它的全局位置。


Vector2 to_local(global_point: Vector2) const 🔗

将提供的全局位置转换为本地坐标空间的位置。例如,它适合于确定子节点的位置,但不适合于确定其自身相对于父节点的位置。


void translate(offset: Vector2) 🔗

在局部坐标系中,将该节点按给定的偏移量 offset 进行平移。