3

我正在使用 Bullet 和 Ogre 开发第三人称射击游戏。当角色模型与世界上的一个对象(例如一个加电装置)发生碰撞时,碰撞会对角色施加一个力并导致它们旋转。如何防止碰撞对角色施加力?

我为 btDynamicsWorld::setInternalTickCallback 设置了一个方法,所以我知道哪些物体正在碰撞以及 btManifoldPoint。

请注意,我将扭矩应用到身体上以便顺利旋转它们,所以我不能简单地阻止旋转。

谢谢你的帮助。

4

1 回答 1

1

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

基本上,如果您绘制代表力的自由体图和箭头,您可以确定净效应。或者,如果您知道所需的净效果,您可以确定需要在哪里增加或移除力。

您可以在撞击时添加相等且相反的力/扭矩。这将使您的对象上的净力为零。

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

希望有帮助。

于 2012-06-26T07:20:31.883 回答