Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

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, ParallaxLayer, Path2D, PathFollow2D, Polygon2D, RayCast2D, RemoteTransform2D, ShapeCast2D, Skeleton2D, Sprite2D, TileMap, 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 ( Vector2 ratio )

float

get_angle_to ( Vector2 point ) const

Transform2D

get_relative_transform_to_parent ( Node parent ) const

void

global_translate ( Vector2 offset )

void

look_at ( Vector2 point )

void

move_local_x ( float delta, bool scaled=false )

void

move_local_y ( float delta, bool scaled=false )

void

rotate ( float radians )

Vector2

to_global ( Vector2 local_point ) const

Vector2

to_local ( Vector2 global_point ) const

void

translate ( Vector2 offset )


属性说明

Vector2 global_position

  • void set_global_position ( Vector2 value )

  • Vector2 get_global_position ( )

全局位置。


float global_rotation

  • void set_global_rotation ( float value )

  • float get_global_rotation ( )

全局旋转,单位为弧度。


float global_rotation_degrees

  • void set_global_rotation_degrees ( float value )

  • float get_global_rotation_degrees ( )

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


Vector2 global_scale

  • void set_global_scale ( Vector2 value )

  • Vector2 get_global_scale ( )

全局缩放。


float global_skew

  • void set_global_skew ( float value )

  • float get_global_skew ( )

全局偏斜,单位为弧度。


Transform2D global_transform

全局 Transform2D


Vector2 position = Vector2(0, 0)

位置,相对于父节点。


float rotation = 0.0

  • void set_rotation ( float value )

  • float get_rotation ( )

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

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


float rotation_degrees

  • void set_rotation_degrees ( float value )

  • float get_rotation_degrees ( )

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


Vector2 scale = Vector2(1, 1)

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

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


float skew = 0.0

  • void set_skew ( float value )

  • float get_skew ( )

使该节点发生倾斜。

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


Transform2D transform

局部 Transform2D


方法说明

void apply_scale ( Vector2 ratio )

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


float get_angle_to ( Vector2 point ) const

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

返回夹角的示意图。


Transform2D get_relative_transform_to_parent ( Node parent ) const

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


void global_translate ( Vector2 offset )

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


void look_at ( Vector2 point )

旋转该节点,使其指向 point,该点应使用全局坐标。


void move_local_x ( float delta, bool scaled=false )

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


void move_local_y ( float delta, bool scaled=false )

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


void rotate ( float radians )

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


Vector2 to_global ( Vector2 local_point ) const

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


Vector2 to_local ( Vector2 global_point ) const

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


void translate ( Vector2 offset )

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