javascript - 在 Matter.js 中禁用特定对象的重力

标签 javascript matter.js

我正在使用 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/

相关文章:

javascript - 在 box2d/matter.js 中查找运动的法向和切向分量

javascript - 用于碰撞检测的 Matter.js

javascript - 在 Javascript 对象中使用 'this'

javascript - 可以移除严格模式而没有副作用吗

javascript - Facebook Messenger 嵌套持久菜单错误

javascript - 如何在 p5.js 中使用箭头键移动 Matter.js 主体?

javascript - Matter.js — 如何获取图像的尺寸来设置主体大小?

JavaScript,Matter.js : Disable collision for one body

javascript - 如何确定 "new lines"在 HTML 元素文本中的位置?

javascript - jQuery UI Draggable - 拖动时需要修改元素