Cocos2d или Box2d?

Я работаю над игрой, и мне нужно обнаружить столкновения между линией и многоугольником. После долгих поисков кажется, что cocos2d не поддерживает коллизии полигонов?

Я могу выполнять обнаружение столкновений линий и прямоугольников, но не полигонов. Должен ли я переходить на Box2d? Любые советы очень ценятся.


person vwee    schedule 21.03.2012    source источник


Ответы (2)


Cocos2D не предлагает никакого обнаружения столкновений. Что вам нужно, так это тест на пересечение луча и полигона, это то, что вы можете сделать с Box2D или Chipmunk. Оба включены в Cocos2D (для iPhone). Box2D и Chipmunk позволяют реализовать игровую физику, такую ​​как гравитация, ветер, обнаружение столкновений и т. д.

Если вам требуется выполнить «своего рода» обнаружение в простом Cocos2D, я рекомендую использовать функции CGRectContainsCGRect или CGRectContainsCGPoint или CGRectIntersectsCGRrect, чтобы сделать то же самое. Это может помочь вам достичь того, чего вы хотите, но это будет не так приятно, как использование игровой физики Box2D или Chipmunk.

person LearnCocos2D    schedule 22.03.2012
comment
Думаю, у меня нет выбора, кроме как перейти на Box2d. Спасибо за совет. - person vwee; 24.03.2012

cocos2d предлагает простое обнаружение столкновений, например CCRect::rectContainsPointcocos2d-x) или rectIntersectsRect.

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

person zhangxaochen    schedule 22.09.2012