JS暂停物理,但仍与对象交互

时间:2019-02-11 20:17:45

标签: javascript canvas game-physics physics matterjs

我希望暂停something.js,但仍然能够操作对象。当我切换Runner.enabled时,它将禁用所有鼠标约束。我希望能够暂停引擎并移动对象,然后重新打开物理功能。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您将要在身体上切换IsStatic。

要暂停所有对象,可以运行for循环将所有bodies.body.isStatic属性设置为True

然后,在单击事件mouseDown上可以执行this.body.isStatic = false;,而在mouseUp上可以执行this.body.isStatic = true;

这将允许您操纵身体并将其移动到任意位置,直到执行bodies.forEach(body) body.isStatic = false之类的操作以使身体再次与世界互动。

请记住,这将保留物理属性,因此您还需要将物体的速度和动量等属性重置为暂停前的状态。取消暂停或使用mouseUp。