2012-03-21 3 views
0

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

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

ответ

1

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

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

+0

У меня нет выбора, кроме как перейти на Box2d. Спасибо за совет. – vwee

0

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

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

Смежные вопросы