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.

运动学角色(2D)

前言

是的,名字听起来很奇怪。“运动学角色”是什么东西?使用这个名称的原因是物理引擎问世之处,它们被称为“动力学(Dynamics)”引擎(因为它们主要处理碰撞响应)。人们做了许多尝试,想使用动力学引擎创建角色控制器,但它并不像看起来那么容易。Godot 拥有你能找到的最好的动力学角色控制器(可以在 2d/platformer 演示中查看),但使用它需要相当高水平的技能和对物理引擎的理解(或者对试验和试错有足够的耐心)。

像 Havok 这样的物理引擎似乎认为力学角色控制器是最好的选择,而其他物理引擎(PhysX)则更愿意推广运动学(Kinematic)的角色控制器。

那么区别是什么呢?:

  • 动力学角色控制器使用的是一个具有无限惯性张量的刚体。这是一个不能旋转的刚体. 物理引擎总是让物体移动和碰撞, 然后一并解决它们的碰撞. 这使得动态角色控制器能够与其他物理对象无缝交互, 就像在平台游戏演示中看到的那样. 然而, 这些互动并不总是可预测的. 碰撞可能需要多于一帧的时间来解决, 所以几个碰撞可能看起来会有很小的位移. 这些问题是可以解决的, 但需要一定的技巧.