MatterJS 预计算最终位置

MatterJS precompute final position

我正在尝试创建一个简单的 2D 游戏,其中一个球落到地上,受到一些障碍物的影响,这些障碍物会改变球的最终位置。

我正在使用 MatterJS 作为 2D 物理引擎,但它实际上是不可预测的,使用相同的参数,我的球总是处于不同的最终位置。

有没有办法预先计算球的路径(即时),将其保存到变量中并加载它以在我需要时获得完全相同的路径?或者有没有办法准确预测最终位置?

我找到了一种通过手动调用 Matter.Engine.update(engine) 并为每一帧存储我的球的位置来立即预先计算球的路径的方法。

然后我重置我的球的位置,设置ball.isStatic = true;并在每一帧手动移动它:

Matter.Events.on(engine, "afterUpdate", () => {
    if (positions.length > 0) {
        Matter.Body.setPosition(ball, positions.shift());
    }
});