在Bullet物理中防止碰撞应用冲动

时间:2012-05-15 16:46:41

标签: c++ bulletphysics

我正在使用Bullet和Ogre开发第三人称射击游戏。当角色模型与世界中的物体碰撞时,例如加电,碰撞会对角色施加力并使其旋转。如何防止对角色施加力的碰撞?

我为btDynamicsWorld :: setInternalTickCallback设置了一个方法,因此我知道哪些实体正在碰撞,而btManifoldPoint。

请注意,我将applyTorque应用于正文以便顺利旋转它,因此我不能简单地阻止旋转。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我不熟悉你提到的物理引擎,但我知道关于真实物理的一两件事......

基本上,如果您绘制一个自由体图和表示力的箭头,您可以确定净效果。或者,如果您知道所需的净效果,则可以确定需要添加力或移除力的位置。

您可以在撞击时添加相等且相反的力/扭矩。这会使你物体上的净力为零。

或者你可以采取导致力量的元素并使它们无质量。力=质量*加速度。如果质量为零并且您的物理引擎基于现实世界的物理学,那么它不应该在碰撞时引起任何净力。

希望有所帮助。