Pregunta

Estoy buscando configurar una transición entre dos niveles (después de completar un nivel, use una de las transiciones pulidas de cocos2d para pasar al siguiente nivel). En mi implementación de GameLayer, tengo la configuración de métodos para hacer cosas como [self buildLevel: 3] para construir el campo de juego. ¿Qué debo hacer para crear una instancia de un nuevo nodo GameLayer o Layer o GameScene o Scene para poder hacer cosas como:

GameLayer * nextLevelLayer;

[nextLevelLayer buildLevel: 4];

... haga una transición entre el nivel 3 y el nivel 4

Tal vez he presentado mi código en un malentendido completo del Objetivo C. Estoy asumiendo que no puede configurar un nuevo GameLayer en el código de inicio, ya que se bloqueará, continuamente creó nuevos nodos. Probablemente tengo demasiado código de configuración del campo de juego en mi código de inicio para GameLayer, ¿cómo lo manejan normalmente? ¿Establece una bandera antes de programar el selector para el bucle principal del juego, luego, si la bandera está configurada, configure el nivel en el bucle principal del juego, o hay una mejor manera de hacerlo?

¡Gracias de antemano!

¿Fue útil?

Solución

Para aquellos a quienes les importa, esto es lo que terminé haciendo:

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

Esto se realizó dentro de la implementación de GameLayer después de completar un nivel.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top