Domanda

Sto cercando di impostare una transizione tra due livelli (dopo che un livello è completo, utilizzare una delle slick transizione di cocos2d per passare al livello successivo). Nella mia implementazione di GameLayer, ho metodi di installazione per fare cose come [self buildLevel: 3] per costruire il campo di gioco. Cosa devo fare per creare un'istanza di un nuovo nodo GameLayer o Layer o GameScene o nodo Scene per poter fare cose come:

GameLayer * nextLevelLayer;

[nextLevelLayer buildLevel: 4];

... effettua una transizione tra il livello 3 e il livello 4

Forse ho esposto il mio codice in un completo fraintendimento dell'Obiettivo C. Suppongo che non sia possibile impostare un nuovo GameLayer nel codice init, poiché si bloccherà, creando continuamente nuovi nodi. Probabilmente ho troppo codice di configurazione del campo di gioco nel mio codice di inizializzazione per GameLayer, come di solito voi ragazzi lo gestite? Imposti un flag prima di programmare il selettore per il loop principale del gioco, quindi se il flag è impostato, imposta il livello nel loop principale del gioco o c'è un modo migliore per farlo?

Grazie in anticipo!

È stato utile?

Soluzione

Per coloro a cui potrebbe interessare, ecco cosa ho finito per fare:

GameScene * gs = [GameScene node];
[[Director sharedDirector] runScene: gs];
[[Director sharedDirector] replaceScene: [ShrinkGrowTransition transitionWithDuration:0.5 scene: gs]];

Ciò è stato fatto nell'implementazione di GameLayer dopo il completamento di un livello.

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