【问题标题】:How can i make an object jump using Cannon.js + Three.js如何使用 Cannon.js + Three.js 进行对象跳转
【发布时间】:2021-12-20 19:44:59
【问题描述】:

在寻找这个解决方案时,我注意到很多使用过, cannonBody.velocity.y = JUMP_VELOCITY

但在我的情况下,它在物体已经运动时起作用,但在它静止后就不起作用。所以,我想知道它是否需要满足一些条件才能跳跃。

我还鼓励制作一个简单的对象(球)在按下空格键时跳跃的演示 sn-p。

【问题讨论】:

标签: javascript typescript three.js cannon.js


【解决方案1】:

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

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

【讨论】:

  • 哦,谢谢,但我想用 Cannon.js 来实现它。即使使用 applyForce 和 applyImpulse,问题仍然存在
  • 嗯,它可能是错误的代码,质量,全局设置。有一种方法可以唤醒沉睡的身体。
  • 如何唤醒沉睡的身体?当我应用“world.allowSleep = false”时,对象移动正常,但这会导致任何性能问题吗?谢谢,因为我在看完你的回复后才意识到这一点
  • 睡眠可以提高性能。如果您有 1 个动能球,则可能无关紧要。测试您的设置(尤其是碰撞)以了解宽相睡眠。如果动力学对象从世界边缘或屏幕上掉下来,它们仍然会使用内存。
猜你喜欢
  • 2014-08-05
  • 1970-01-01
  • 2023-04-05
  • 2015-04-22
  • 2013-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多