2010-10-15 24 views
5

Quelle est la meilleure façon de mettre en œuvre une carte de jeu zoomable pan-mesure avec Cocos2d pour iPhone. Ce serait comme Safari mobile, sauf avec une carte de jeu qui ne correspond pas complètement à l'écran. Ou comme c'est fait avec Angry Birds, couper la corde, etcMeilleur moyen de zoomer et de faire un panoramique sur un jeu iphone cocos2d 2D

Ce ne serait pas un jeu de défilement latéral, juste une zone de jeu fixe que vous pouvez zoomer/dézoomer. Je suis nouveau, donc s'il y a des tutoriels pour ça, ce serait génial.

Merci

Répondre

1

mais je vais recommander Écrasement la fonction VISITE de votre calque que vous souhaitez échelle et la mise à l'échelle par gérer soit glOrthof ou glScalef

Je ne remplace pas la fonction de visite ... il suffit d'ajouter votre couche au répartiteur de contact:

[[CCTouchDispatcher sharedDispatcher] addStandardDelegate:self priority:0]; 

et mettre en œuvre les fonctions de délégué:

- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)ccTouchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event; 

dans cette fonction si vous remarquez que l'utilisateur est un balayage panoramique/zoom, simplement mettre à jour les propriétés de position/échelle scène.

Pour trouver si l'utilisateur est un balayage panoramique ou zoom, cochez cette classe d'aide InputController ici: https://github.com/caxaria/LoopingMenu

Hope it helps,

4

si vous ne comptez pas utiliser la physique dans votre jeu, alors il est très simple, vous trouverez beaucoup de tutoriels sur le zoom/pan, vient de mettre votre monde ÉCHELLE dans le code zoom/touchesMoved. Mais si vous optez pour Angry Bird like stuff, alors vous pouvez utiliser le moteur physique Box2d/Chipmunk (fourni avec cocos2d), mais pour construire le monde de la physique comme les oiseaux en colère, vous devrez soit écrire votre propre éditeur de niveau. ou vous pouvez utiliser LevelSVG (par Cocos2d) une sorte de chose pour faire visuellement le monde dans l'éditeur SVG et l'analyser en BOX2d. En ce qui concerne le zoom/pan avec les corps de physique dans votre monde, cela fonctionnera tant que votre monde physique est dans votre couche que vous essayez d'ÉCHELLE.

mais je vais recommander Écrasement la fonction VISITE de votre calque que vous souhaitez à l'échelle, et face à l'élargissement soit glOrthof ou glScalef

6

Vous devriez absolument pas suivre les conseils de Joao Caxaria, qui semble ont réimplémenté inutilement toute l'API UIGestureRecognizer en lui-même!

Vous pouvez simplement utiliser les outils de reconnaissance de gestes disponibles d'UIKit et les attacher à l'interface openGLView de sharedDirector, comme spécifié dans la réponse choisie dans le lien ci-dessous. Ceux-ci permettent la détection de panoramique, de pincement, de prise, etc. Vous pouvez même utiliser UILongPressGestureRecognizer pour détecter le glisser.

cocos2d-iOS - Gesture recognisers