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 中骨骼的长度。