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.
Checking the stable version of the documentation...
Bone2D
继承: Node2D < CanvasItem < Node < Object
与 Skeleton2D 一起使用的关节,能够控制并动画其他节点。
描述
Bone2D 层级结构可以绑定到 Skeleton2D 上,控制并动画其他 Node2D 节点。
你可以使用 Bone2D 和 Skeleton2D 节点对使用 Polygon2D UV 编辑器创建的 2D 网格进行动画。
每个骨骼都有一个 rest 变换,你可以用 apply_rest() 来重置到这个变换。这些放松姿势是相对于骨骼的父节点而言的。
如果在编辑器中,你可以使用菜单选项设置整个骨架的放松姿势,从代码中,你需要遍历骨骼来设置它们各自的放松姿势。
属性
|
方法
void |
|
get_bone_angle() const |
|
get_index_in_skeleton() const |
|
get_length() const |
|
get_skeleton_rest() const |
|
void |
set_autocalculate_length_and_angle(auto_calculate: bool) |
void |
set_bone_angle(angle: float) |
void |
set_length(length: float) |
属性说明
Transform2D rest = Transform2D(0, 0, 0, 0, 0, 0)
🔗
void set_rest(value: Transform2D)
Transform2D get_rest()
骨骼的放松变换。你可以使用 apply_rest() 将节点的变换重置为这个值。
方法说明
void apply_rest() 🔗
将骨骼重置为放松姿势。相当于将 Node2D.transform 设置为 rest。
bool get_autocalculate_length_and_angle() const 🔗
如果该 Bone2D 存在骨骼子节点,则返回是否要使用第一个 Bone2D 子节点自动计算其长度和骨骼角度。如果没有 Bone2D 子节点,则无法自动计算这些值,会打印一条警告。
float get_bone_angle() const 🔗
返回 Bone2D 中骨骼的角度。
注意:这与 Bone2D 的旋转不同。骨骼角度是小工具显示的骨骼旋转,不受 Bone2D 的 Node2D.transform 的影响。
int get_index_in_skeleton() const 🔗
返回节点在整个骨架中的索引号。见 Skeleton2D。
返回 Bone2D 节点中骨骼的长度。
Transform2D get_skeleton_rest() const 🔗
如果节点没有父节点,返回节点的 rest Transform2D,或者返回它相对于父节点的放松姿势。
void set_autocalculate_length_and_angle(auto_calculate: bool) 🔗
当设置为 true
时,该 Bone2D 节点将尝试使用第一个子 Bone2D 节点(如果存在)自动计算骨骼角度和长度。如果不存在子节点,Bone2D 将无法自动计算这些值,并将输出一条警告。
void set_bone_angle(angle: float) 🔗
设置 Bone2D 节点的骨骼角度。这通常设置为从 Bone2D 节点到子 Bone2D 节点的旋转。
注意:这与 Bone2D 的旋转不同。骨骼角度是 Bone2D 小工具显示的骨骼旋转,不受 Bone2D 的 Node2D.transform 的影响。
void set_length(length: float) 🔗
设置该 Bone2D 中骨骼的长度。