Cocos2D обнаружение коллизий CCSprites на разных CCNodes с разным положением и вращением - PullRequest
0 голосов
/ 07 ноября 2011

У меня есть такая иерархия:

Сцена
- gameWorld (CCLayer Z: 0)
- игрок (CCSprite Z: 1)
- spriteWorld (CCNode Z: 0)
- bgSprite (CCSprite Z: 0)
- враг (CCSprite Z: 0)

SpriteWorld вращается, а bgSprite перемещается, поэтому любые CCSprites, размещенные на bgSprite, имеют повернутые и перемещенные координатысистема по сравнению с системой координат gameWorld.

Мне нужно обнаружить столкновения между CCSprites, помещенными как в gameWorld, так и в bgSprite.Теперь я видел этот пост здесь:

Положение Cocos2D CCNode в абсолютных координатах экрана

, которое может дать мне позицию каждого спрайта относительно экрана, но как мне тогдарассчитать или получить ограничивающую рамку для этих спрайтов?Эти ограничивающие рамки вращаются с помощью вращения spriteWorld, но каждый спрайт также вращается на bgSprite.

Для меня это звучит как сумасшедшая математика, и я глупец в математике, поэтому мне действительно очень нужна помощь.

Спасибо, Сёрен

1 Ответ

1 голос
/ 07 ноября 2011

Действительно, cocos2D не имеет прямой поддержки для обнаружения столкновений, поэтому вам придется делать все свои вычисления самостоятельно.

В любом случае, вы можете использовать такую ​​среду, как chipmunk-physics или Box2D , чтобы сделать это для вас. Основная идея заключается в том, что вы связываете тело / фигуру со своим спрайтом, а затем настраиваете обратный вызов столкновения, который будет запущен при обнаружении столкновения, не беспокоясь о математике ...

Посмотрите эту статью о использовании Box2D только для обнаружения столкновений .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...