我正在使用Cocos2d與Box2d編寫簡單的iOS遊戲。我已經有碰撞檢測工作了,但不是我想要的。我已經擴展b2ContactListener和檢測物體的碰撞是這樣的:Box2D中的高級碰撞檢測 - 碰撞點,力量等
void ContactListener::BeginContact(b2Contact* contact)
{
b2Body *aBody = contact->GetFixtureA()->GetBody();
b2Body *bBody = contact->GetFixtureB()->GetBody();
// collision between aBody and bBody occurred
}
我不能找出如何讓碰撞點,如果可能的話,碰撞衝擊力。有幾個教程如何獲得碰撞點,但他們都沒有爲我工作。我發現了一些使用b2CollisionPoint的例子,但它看起來像在當前版本的Box2d中不起作用。其他的例子實現了b2CollisionPoint的「Result」方法,但它也不工作 - 看起來它適用於以前版本的Box2d或其他平臺版本(Java或Flash)。
爲了更具體地說明我的問題,下面是我想要實現的一個示例: 我需要檢測遊戲對象之間的碰撞類型。我已經能夠檢測到球員夾具是否與地面夾具發生碰撞,但是我需要知道球員是站在地上還是與底部碰撞(想象平臺遊戲和碰到平臺的球員跳後)或其他方(球員跳入垂直牆)。如果我能夠找到碰撞點,我會更容易做到這一點。這在許多其他情況下也會有用。
您好,我有同樣的問題在檢測到接觸點。但是,通過將形狀定義的「isSensor」屬性設置爲true,PreSolve和PostSolve都不會被調用。但是,當「isSensor」屬性設置爲false時,應用程序以某種方式崩潰,我不確定原因。對此有何想法?謝謝! – Anthony