0
是否可以確定b2body是否與來自不同層的另一個b2body相撞?另外,我將如何做到這一點?確定身體是否發生了碰撞 - Cocos2d/Box2D
E.G.
我在我的主要遊戲場景圖層上有一個球,在我的一層炸彈中被擊中。他們相撞,炸彈消失。
請讓我知道,如果我需要更清楚
謝謝!
是否可以確定b2body是否與來自不同層的另一個b2body相撞?另外,我將如何做到這一點?確定身體是否發生了碰撞 - Cocos2d/Box2D
E.G.
我在我的主要遊戲場景圖層上有一個球,在我的一層炸彈中被擊中。他們相撞,炸彈消失。
請讓我知道,如果我需要更清楚
謝謝!
如果你想要身體碰撞,他們必須屬於同一個b2World。他們畫的是什麼層,對物理學無關緊要。要確定當發生碰撞的子類b2ContactListener
並實現回調函數:
class MyContactListener : public b2ContactListener
{
public:
MyContactListener() : b2ContactListener() {}
void BeginContact (b2Contact *contact);
void EndContact (b2Contact *contact);
void PreSolve (b2Contact *contact, const b2Manifold *oldManifold);
void PostSolve (b2Contact *contact, const b2ContactImpulse *impulse);
};
那麼這個類的對象添加到您的b2World:
MyContactListener *listener = new MyContactListener();
world->SetContactListener(listener);
我有碰撞檢測設置。我應該全球宣佈b2World嗎?球是在遊戲場景層上繪製的,這是它自己的類,而炸彈是在第一層上繪製的,這是它自己的類。 – Jonathan
@Jon:我認爲你擁有包含所有其他圖層的主要場景或圖層。您可以存儲b2World指針並將指針傳遞給您創建的每個子圖層 – Andrew
如何創建子圖層? – Jonathan