使用物理引擎时,需要注意某些行为方面和限制。本指南概述了其中最重要和最常见的方面。
当然,具有物理体的显示对象可以放置在不同的 显示群组 中,以便进行
可以一致地或
这也适用于 physics.setDrawMode() 的 "hybrid"
和 "debug"
模式 — 即使这些绘制模式表明物理体由于修改群组而发生了变化,碰撞系统仍然会将它们视为其原始状态。
通常,不应通过 object:scale()、object.xScale 或 object.yScale 缩放具有物理体的显示对象。这是因为物理引擎仍然会将物理体视为其最初定义的状态。本质上,如果您放大或缩小对象,显示对象部分将在视觉上反映应用的缩放比例,但物理体不会受到影响。
可以通过 过渡动画 移动具有物理体的显示对象,但重要的是要理解这些过渡运动独立于物理运动。因此,对物理对象使用过渡运动应谨慎处理或完全避免。
例如,如果一个物理对象在模拟重力的作用下下落,然后您应用过渡动画将其向上移动到特定垂直点,则该对象的实际
仍然可以在物理体上使用过渡运动,但您应确保在过渡动画开始时,对象上没有相互竞争的物理力或速度。一种实现方法是通过object.isAwake = false
如果在过渡动画期间的任何时候发生物理交互 — 例如与另一个对象发生碰撞 — 您应立即通过 transition.cancel() 取消过渡动画,以防止两个试图控制对象的系统之间发生进一步的冲突。
通常,您应该避免对由物理 关节 连接的多个不同物体组成的物理结构使用任何类型的过渡运动或旋转。如果您仅将过渡动画应用于其中一个物体,则连接到该物体的对象可能无法与单个物体上发生的过渡动画保持同步。如果过渡动画导致位置或角度快速或突然变化,则尤其如此。