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