Определить, столкнулось ли тело - Cocos2d / Box2D - PullRequest
0 голосов
/ 17 сентября 2011

Можно ли определить, столкнулся ли b2-тело с другим b2-телом из другого слоя? Кроме того, как бы я это сделал?

Е.Г.

У меня есть слой на слое основной игровой сцены, который стреляет по бомбе на уровне первого уровня. Они сталкиваются, и бомба исчезает.

Пожалуйста, дайте мне знать, если мне нужно быть более ясным

Спасибо!

1 Ответ

1 голос
/ 17 сентября 2011

Если вы хотите, чтобы тела сталкивались, они должны принадлежать одному и тому же 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);
...