Up to date

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

Bone2D

继承: Node2D < CanvasItem < Node < Object

Skeleton2D 一起使用的关节,能够控制并动画其他节点。

描述

Bone2D 层级结构可以绑定到 Skeleton2D 上,控制并动画其他 Node2D 节点。

你可以使用 Bone2DSkeleton2D 节点对使用 Polygon2D UV 编辑器创建的 2D 网格进行动画。

每个骨骼都有一个 rest 变换,你可以用 apply_rest 来重置到这个变换。这些放松姿势是相对于骨骼的父节点而言的。

如果在编辑器中,你可以使用菜单选项设置整个骨架的放松姿势,从代码中,你需要遍历骨骼来设置它们各自的放松姿势。

属性

Transform2D

rest

Transform2D(0, 0, 0, 0, 0, 0)

方法

void

apply_rest ( )

bool

get_autocalculate_length_and_angle ( ) const

float

get_bone_angle ( ) const

int

get_index_in_skeleton ( ) const

float

get_length ( ) const

Transform2D

get_skeleton_rest ( ) const

void

set_autocalculate_length_and_angle ( bool auto_calculate )

void

set_bone_angle ( float angle )

void

set_length ( float length )


属性说明

Transform2D rest = Transform2D(0, 0, 0, 0, 0, 0)

骨骼的放松变换。你可以使用 apply_rest 将节点的变换重置为这个值。


方法说明

void apply_rest ( )

将节点当前的变换存储在 rest 中。


bool get_autocalculate_length_and_angle ( ) const

如果该 Bone2D 存在骨骼子节点,则返回是否要使用第一个 Bone2D 子节点自动计算其长度和骨骼角度。如果没有 Bone2D 子节点,则无法自动计算这些值,会打印一条警告。


float get_bone_angle ( ) const

返回 Bone2D 中骨骼的角度。

注意:这与 Bone2D 的旋转不同。骨骼角度是小工具显示的骨骼旋转,不受 Bone2DNode2D.transform 的影响。


int get_index_in_skeleton ( ) const

返回节点在整个骨架中的索引号。见 Skeleton2D


float get_length ( ) const

返回 Bone2D 节点中骨骼的长度。


Transform2D get_skeleton_rest ( ) const

如果节点没有父节点,返回节点的 rest Transform2D,或者返回它相对于父节点的放松姿势。


void set_autocalculate_length_and_angle ( bool auto_calculate )

当设置为 true 时,该 Bone2D 节点将尝试使用第一个子 Bone2D 节点(如果存在)自动计算骨骼角度和长度。如果不存在子节点,Bone2D 将无法自动计算这些值,并将输出一条警告。


void set_bone_angle ( float angle )

设置 Bone2D 节点的骨骼角度。这通常设置为从 Bone2D 节点到子 Bone2D 节点的旋转。

注意:这与 Bone2D 的旋转不同。骨骼角度是 Bone2D 小工具显示的骨骼旋转,不受 Bone2DNode2D.transform 的影响。


void set_length ( float length )

设置该 Bone2D 中骨骼的长度。