我正在使用Matter.js开发一个项目,该项目通常需要启用重力,但是我希望能够在特定时间为单个对象禁用并重新启用它。我不想将该对象设置为静态,因为我希望物理引擎以其他方式处理它,我只是不希望重力影响它。

我发现this question通常可以解决重力问题,但是正如我所说,我希望重力对大多数对象都起作用。有没有简单的方法可以做到这一点?

最佳答案

这是一个简单的代码片段,您可以打开/关闭以完成您要的内容(其中body是应忽略重力的对象,而noGravity是可以切换以将其打开和关闭的 bool 值):

Events.on(engine, 'beforeUpdate', function() {
    var gravity = engine.world.gravity;

    if (noGravity) {
        Body.applyForce(body, body.position, {
            x: -gravity.x * gravity.scale * body.mass,
            y: -gravity.y * gravity.scale * body.mass
        });
    }
});

关于javascript - 在Matter.js中为特定对象禁用重力,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36463991/

10-11 13:32