确定身体是否发生碰撞 - Cocos2d / Box2D

时间:2011-09-17 05:52:46

标签: iphone cocos2d-iphone box2d

是否有可能确定b2body是否与另一层中的另一个b2体发生碰撞?另外,我该怎么做?

E.G。

我的主要游戏场景图层上有一个球,在我的一级别的炸弹中被射击。他们相撞,炸弹消失了。

如果我需要更清楚,请告诉我

谢谢!

1 个答案:

答案 0 :(得分:1)

如果你想要身体碰撞,他们必须属于同一个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);