2012-03-21 4 views
0

Je travaille sur un jeu et j'ai besoin de détecter les collisions entre une ligne et un polygone. Après beaucoup de googling, il semble que cocos2d ne supporte pas les collisions de polygones?Cocos2d ou Box2d?

Je peux effectuer une détection de collision en ligne et rectale, mais pas de polygone. Dois-je passer à Box2d? Tout conseil est fort apprécié. Cocos2D n'offre aucun type de détection de collision.

Répondre

1

Ce que vous voulez, c'est un test d'intersection rayon/polygone, c'est quelque chose que vous pouvez faire avec Box2D ou Chipmunk. Les deux sont inclus dans Cocos2D (pour iPhone). Box2D et Chipmunk permettent la mise en œuvre de la physique du jeu comme la gravité, le vent, la détection de collision, etc.

Si vous avez besoin de faire une « sorte de » détection dans Cocos2D plaine, je vous recommande l'utilisation des fonctions CGRectContainsCGRect ou CGRectContainsCGPoint ou CGRectIntersectsCGRrect à faire de même. Cela peut vous aider à réaliser ce que vous voulez, mais ce ne sera pas aussi agréable que l'utilisation de la physique du jeu Box2D ou Chipmunk.

+0

Je suppose que je n'ai pas d'autre choix que de passer à Box2d alors. Merci pour le conseil. – vwee

0

cocos2d offre simplement la détection de collision simple comme CCRect::rectContainsPoint (dans cocos2d-x) ou .

Si votre polygone est un rectangle, vous pouvez faire la détection en jugeant s'il y a un point de la ligne contenue par ce rectangle.