2012-05-15 47 views
3

我正在使用Bullet和Ogre開發第三人稱射擊遊戲。當角色模型與世界上的物體碰撞時,例如上電,碰撞對角色施加力並使其旋轉。我怎樣才能防止碰撞對角色施加一個力量?防止碰撞在子彈物理中應用衝量

我已經爲btDynamicsWorld :: setInternalTickCallback設置了一個方法,所以我知道哪些物體正在碰撞和btManifoldPoint。

請注意,我將扭矩應用到身體以便順利旋轉它們,所以我不能簡單地防止旋轉。

感謝您的幫助。

+0

你的力量對象有質量嗎? – Jay

+0

它們的質量是0.角色的質量是80。 – tgt

回答

1

我不熟悉你所提到的物理引擎,但我知道一件事或兩個關於真實的物理...

基本上如果你畫一個自由體受力圖和箭頭代表勢力,你可以決定淨效應。或者,如果您知道所需的淨效應,則可以計算出需要增加力量或移除力量的位置。

您可以在碰撞時增加一個相等且相反的力/扭矩。這會使你的物體的淨力量爲零。

或者你可以採取造成這些力量並使它們無質量的元素。力=質量*加速度。如果質量爲零,並且物理引擎基於真實世界物理,那麼它不應該對碰撞產生任何淨力。

希望有所幫助。