0
我有一個彈丸和一個塔。當我投擲射彈時,它撞擊塔。基於拋射力,塔架破裂。現在我需要知道如何在碰撞時獲得應用於這兩個物體的力(不是在碰撞之前,而是在碰撞之後)。我知道下面的方法就可以計算如下碰撞後施加在box2d物體上的力
void MyContactListener::PostSolve(b2Contact* contact, const b2ContactImpulse *impulse)
{
force=impulse->normalImpulses[0];
}
這給了我施加的總力,但我想知道適用於2個不同的對象的個人力量。
還有一個問題,這個方法駐留在b2ContactListener類的子類中。如何將此值傳遞給GameScene,其中對象將被銷燬。
如果我有多個對象碰撞,那麼如何從這個變量中識別不同的衝動? – russell
您需要檢查哪些燈具正在碰撞 - 您可以通過contact-> GetFixtureA()和contact-> GetFixtureB()從聯繫人中獲取它們。如果有幫助,您可以將用戶數據中的某些內容設置爲標記以區分它們。在本教程中查看BeginContact的實現,它有點類似:http://www.iforce2d.net/b2dtut/collision-callbacks – iforce2d
感謝您的鏈接。但是,如果對象A與對象B和對象C同時碰撞,那麼我將得到2的衝動。因此對象A將有2衝動,所以對象A的用戶數據標籤將不足以滿足要求。任何其他想法? – russell