Обнаружение столкновения с двумя или более фигурами с Бурундуком - PullRequest
1 голос
/ 11 мая 2011

Интересно, кто-нибудь может предложить лучший подход для обнаружения столкновения между несколькими фигурами .

Я использую Бурундук на iPad с iOS 4.2 и Cocos2D 1.0 - у меня в основном cpShape , путешествующий по экрану iPad - есть два сегмента cpShape (в виде буквы V), и я хотел бы знать, когда моя дорожная форма касается ОБА формы сегмента (т.е. соответствующий спрайт удобно расположен внутри буквы V).

Есть идеи? Я настроил свой обратный вызов с помощью cpSpaceAddCollisionHandler , но у меня, похоже, нет списка всех форм, с которыми сталкивается текущая сталкивающаяся форма. Это возможно, или мне нужно кодировать и хранить информацию вручную?

Спасибо

1 Ответ

0 голосов
/ 12 мая 2011

Я думаю, вам придется хранить некоторые данные в вашем спрайтовом объекте.

В бурундуке есть обратные вызовы, когда 2 объекта сначала касаются, а потом разделяются.

  • Начало: две фигуры только начали трогать первый раз в этом шаге. Верните true из обратного вызова, чтобы обработать столкновение как обычно, или false, чтобы Бурундук полностью игнорировал столкновение. Если вы вернете false, обратные вызовы до и после решения никогда не будут выполняться, но вы все равно получите отдельное событие, когда фигуры перестанут перекрываться.

  • Отдельно: две фигуры только что перестали касаться в первый раз на этом шаге.

Вы можете сделать так, чтобы у вашего объекта, который должен «сидеть внутри V», было по 2 bool по одному на каждую сторону V, чтобы оно было истинным, когда они «начинаются», и ложным, когда они разделялись.

Если они оба истинны, и объект isSleeping (прекратить движение) (я пришел из фона box2d, не уверен, что эквивалент бурундука есть).

Надеюсь, это поможет.

...