This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Defold 包含一个修改版的 Box2D 物理引擎 (版本 2.2.1) 用于模拟2D物理效果和一个 Bullet physics 引擎 (版本 2.77) 用来模拟3D物理效果. 物理引擎可以基于牛顿物理定律模拟各种 碰撞物体 运动碰撞时的物理效果. 本教程介绍了物理引擎的使用方法.
Defold 中的物理相关教程如下:
另外还可以向物理碰撞对象施加 约束, 称为 关节, 用以向碰撞对象进行物理约束或者力的施加. 详见 物理关节教程.
还可以通过向物理世界发出射线以便了解各个物体的位置情况, 称为 投射. 详见 物理投射教程.
设计上按照牛顿物理学单位米, 千克和秒 (MKS) 的标准单位. 模拟物尺寸 0.1 到 10 米范围 (静态对象可以更大) 效果较好, 默认一像素 (pixel) 当作 1 米. 这种转换比例是物理模拟器层次上的, 对游戏来说并不适用. 默认一个200像素的物体在物理世界相当于200米超过了最佳模拟范围. 一般需要对游戏里的物体进行物理上的缩放. 可以在 game.project 里的 物理缩放设置 处指定缩放值. 比如设置为 0.02 意味着 1:50, 那么200像素就是 4 米. 注意重力 (也在 game.project 里进行设定) 也需要基于缩放值进行调整.
推荐以固定帧率更新物理引擎 (而不是依据游戏不稳定的更新频率) 以模拟稳定的物理效果. 可以在 game.project 文件的 Physics 部分中勾选 Use Fixed Timestep setting 以启用固定帧率物理更新. 帧率由 game.project 文件的 Engine 部分中的 Fixed Update Frequency setting 配置决定. 当物理引擎使用固定帧率更新时推荐使用 fixed_update(self, dt)
生命周期函数来对游戏中的物体的交互进行处理, 例如对物体施加一个力.
Did you spot an error or do you have a suggestion? Please let us know on GitHub!
GITHUB