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