Chipmunk刚体支持3种不同的类型: Dynamic(动态),Static(静态)以及Kinematic(混合态)刚体.它们拥有不同的行为和性能特征.

动态刚体是默认的刚体类型.它们可以对碰撞做出反应,受到力和重力的影响,并且拥有有限的质量.

它们是你想要物理引擎为你模拟的物体.动态刚体可以与其他所有类型的物体相互作用并且产生碰撞的回调.

静态刚体是从不(或极少)移动的物体.将静态刚体用在类似于地形的物体上可以比其它刚体类型提供很大的性能提升.因为Chipmunk不需要检查静态刚体之间的碰撞并且从不需要更新它们的碰撞信息.

此外,因为静态刚体不移动,Chipmunk知道让接触或关联静态刚体的对象进入睡眠是安全的.通常所有你关卡几何结构除了像移动平台或门之类的物体之外,全部都附属于静态刚体上.所有的空间为了您的方便起见都提供一个嵌入刚体.

刚体可以移动,因为碰撞信息需要重新计算,所以将有一个性能惩罚.

但是拥有多重的静态刚体不会招致惩罚,并且它对简化你的代码去允许你的不同静态几何形状初始化或分开移动时非常有用.

混合刚体是被你的代码而不是内部物理引擎控制的物体.它们不能被重力影响,并且它们拥有无限的质量所以它们也不能对其他物体的碰撞和作用力做出反应.

混合刚体通过设置它们的速率(velocity)来控制,这将会引起它们的移动.混合刚体的好例子可能包括像移动平台类似的物体.接触或关联一个混合刚体的对象从不允许进入睡眠状态.

05-08 08:06