我如何使用 Cannon.js + Three.js 让物体跳跃

How can i make an object jump using Cannon.js + Three.js

在搜索这个解决方案时,我注意到很多人都用过, cannonBody.velocity.y = JUMP_VELOCITY

但在我的例子中,它在对象已经在运动时起作用,但一旦它变得静止就不会起作用。所以,我想知道它是否需要满足一些条件才能跳跃。

我还鼓励制作一个演示片段,让一个简单的物体(一个球)在按下空格键时跳跃。

我切换到 OimoPhysics,一切正常。它使用相同的约定。它如何在声明性设置中取代物理世界,我不知道..?我已经用佳能做到了,您可以在其中设置配置容差。但是,即使通过添加 body 或移动它的快速设置,Oimo 也立即解决了睡眠问题。 ApplyForce 将比任意 + y 值更一致和更现实。我认为 applyForce 会带来更少的问题。

移动几何体后很容易忘记调用物理更新。如果渲染循环错过一个步骤,您的几何体可能会被冻结,丢失到物理 body。或者,如果您在其位置添加另一个物理 body,则原始指针可能会丢失。然后如果另一个 body 碰撞它会突然醒来。视情况和版本而定...