Cocos2d или Box2d?
Я работаю над игрой, и мне нужно обнаружить столкновения между линией и многоугольником. Кажется, что после долгих поисковиков cocos2d не поддерживает столкновения полигонов?
Я могу выполнять обнаружение столкновений линий и прямоугольников, но не полигонов. Должен ли я перейти на Box2d? Любой совет высоко ценится.
2 ответа
Cocos2D не предлагает никакого обнаружения столкновений. То, что вы хотите, это тест пересечения лучей и полигонов, это то, что вы можете сделать с Box2D или Бурундуком. Оба включены в Cocos2D (для iPhone). Box2D и Chipmunk позволяют реализовать физику игры, такую как гравитация, ветер, обнаружение столкновений и т. Д.
Если вам требуется выполнить "своего рода" обнаружение в простом Cocos2D, то я рекомендую использовать функции CGRectContainsCGRect или CGRectContainsCGPoint или CGRectIntersectsCGRrect, чтобы сделать то же самое. Это может помочь вам достичь того, чего вы хотите, но это не так хорошо, как использование игровой физики Box2D или бурундука.
cocos2d
предлагает просто обнаружение столкновений, как CCRect::rectContainsPoint
(в cocos2d-x
) или же rectIntersectsRect
,
Если ваш многоугольник представляет собой прямоугольник, то вы можете выполнить обнаружение, судя, есть ли точка линии, содержащаяся в этом прямоугольнике.