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

Matter JS Pause physics but still interact with objects

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

您需要在身体上切换 IsStatic。

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

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

这将允许你操纵你的身体并将它们移动到你喜欢的任何地方,直到你做类似 bodies.forEach(body) body.isStatic = false 的事情让你的身体再次与你的世界互动。

请记住,这将保留物理属性,因此您还需要将物体的速度和动量等属性重置为暂停前的某个点。在 unPause 或 mouseUp 上。