2008-12-09 7 views
6

Je cherche à établir une transition entre deux niveaux (après qu'un niveau soit terminé, utilisez l'une des transitions lisses de cocos2d pour passer au niveau suivant). Dans mon implémentation de GameLayer, j'ai des méthodes d'installation pour faire des choses comme [self buildLevel: 3] pour construire le playfield. Que dois-je faire pour instancier un nouveau noeud GameLayer ou Layer ou un noeud GameScene ou Scene pour pouvoir faire des choses telles que:Transitions et configuration de calques/scènes dans cocos2d iPhone

GameLayer * nextLevelLayer;

[nextLevelLayer buildLevel: 4];

... faire une transition entre le niveau 3 et niveau 4

Peut-être que j'ai mis mon code dans une incompréhension totale de l'objectif C. Je suppose que vous ne peut pas installer un nouveau GameLayer dans la code init, car il va bloquer, continuellement créé de nouveaux nœuds. J'ai probablement trop de code d'installation de playfield dans mon code d'initialisation pour GameLayer, comment les gars le gèrent-ils habituellement? Est-ce que vous définissez un drapeau avant de programmer le sélecteur pour la boucle principale du jeu, puis si le drapeau est défini, configurez le niveau dans la boucle principale du jeu, ou y a-t-il une meilleure façon de faire?

Merci d'avance!

Répondre

14

Pour ceux qui pourraient occuper, voici ce que je fini par faire:

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

Cela a été fait dans la mise en œuvre GameLayer après un niveau était complet.

Questions connexes