c++ - Bullet Physics 刚体从表面反弹

标签 c++ game-physics physics-engine bulletphysics

我为我的游戏编写了一个玩家 Controller ,它使用刚体为玩家提供物理特性。我将恢复力和摩擦力都设置为 0,将质量设置为 80。我的地形具有完全相同的属性,只是质量也是 0。 每当玩家从高处坠落时,它都会在地形表面弹跳几次。这不是我真正希望我的玩家使用react的方式。有没有办法防止这种行为?

这是一个说明我的问题的视频。由于我是用 QuickTime 录制的,所以它有点慢,但它应该能说明问题。

http://www.youtube.com/watch?v=2eQ1cj7hpWw

最佳答案

您将 restitution 设置为 0 并期望它不会反弹。但是当你的 body 与地球碰撞时,这个小跳跃(与你感觉到的高度相比)是由解算器处理的。求解器应用一定的冲动来解决碰撞并停止你的运动。冲量比避免碰撞 Unresolved 情况所必需的要大一些。

当您的 body 是运动的而不是动态的时,您可以考虑实现不同的模拟。

您将不得不手动处理碰撞和移动,但您可以完全控制您希望 body 移动的方式。

关于c++ - Bullet Physics 刚体从表面反弹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12448722/

相关文章:

java - 2D 圆低速碰撞导致重叠

c++ - GCC 根据数组索引值生成不同的代码

physics - 带移动枢轴的摆锤

java - 在某个确切点停止的更好方法?

algorithm - 是否需要在循环的每次迭代中重新创建 Barnes Hut Tree

physics - 如何在子弹物理引擎中模拟传送带?

javascript - 使用图像模拟重力的 2D 物理引擎

c++ - 称为终止的纯虚方法

c++ - 使用 enable_if 单独定义和声明模板成员函数,其模板参数还包括一个 constexpr 成员函数

c++ - libxrandr 库 : how to change properties of connected monitors?