Domanda

Qual è il modo migliore per attuare una mappa di gioco stradale pan-grado con Cocos2d per iPhone. Sarebbe come Safari Mobile se non con una mappa di gioco che non si adatta completamente sullo schermo. O come come si fa con Angry Birds, Cut the Rope, ecc.

Questo non sarebbe un gioco a scorrimento laterale, solo una zona di gioco fisso che si può ingrandire / fuori.

Sono nuovo quindi se ci sono tutorial per questo che sarebbe grande.

Grazie

È stato utile?

Soluzione

  

ma io ll consiglio sovrascrittura della funzione VISITA del vostro livello da Scala, e gestire la Scaling da una glOrthof o glScalef

Non vorrei sovrascrivere la funzione di visita ... basta aggiungere il livello al tatto dispatcher:

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

e implementare le funzioni delegate:

- (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;

all'interno queste funzioni se si nota che l'utente effettua una scansione panoramica / zoom, basta aggiornare la posizione scena / proprietà scala.

Per trovare se l'utente effettua una scansione panoramica o lo zoom, controllare questa classe helper InputController qui: https://github.com / caxaria / LoopingMenu

Speranza che aiuta,

Altri suggerimenti

È assolutamente dovrebbe non seguire il consiglio di Joao Caxaria, che sembra aver inutilmente reimplementato l'intera API UIGestureRecognizer se stesso!

Si può semplicemente utilizzare disponibili sistemi di riconoscimento gesto di UIKit e di collegarli a openGLView del sharedDirector, come specificato nella risposta scelta nel link qui sotto. Questi permettono di pan, pinch, toccare ecc rilevazione. È anche possibile utilizzare un UILongPressGestureRecognizer per rilevare il trascinamento.

cocos2d-iOS - riconoscitori gesto

se non si ha intenzione di utilizzare la fisica nel vostro gioco, quindi è molto semplice troverete un sacco di tutorial su zoom / pan, è sufficiente impostare la vostra scala mondiale nella touchesMoved zoom / pan codice.

, ma se si sta andando per Angry Uccello come roba, quindi è possibile utilizzare il motore fisico Box2d / Chipmunk (viene fornito con cocos2d), ma per la costruzione del mondo della fisica come Angry Birds si sia necessario scrivere il proprio editor di livelli o è possibile utilizzare LevelSVG (da cocos2d persone) kindof cosa visivamente rendere il mondo in editor di SVG e analizzarlo a Box2D.

Per quanto riguarda la Zoom / padella con corpi fisica nel vostro mondo, funzionerà fino a quando il mondo della fisica è nel vostro LAYER cui si sta tentando di scalare.

ma io ll consiglio sovrascrittura della funzione VISITA del vostro livello da Scala, e gestire la Scaling da una glOrthof o glScalef

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top