Pregunta

Utilizando cocos2d para el desarrollo de juegos para iPhone, estoy confundido entre Layer y Scene. Por ejemplo, Mi juego simple tiene varias " Páginas UI " como menú principal, puntuaciones más altas, tablero de juego, etc.

¿Debo usar Capa o Escena para cada " página UI " ;, y por qué?

¿Fue útil?

Solución

Al revisar SpritesDemo.m / .h, parece que están usando Layer, y luego crear nuevas escenas, adjuntar la capa y luego reemplazar la escena en el director

@interface SpriteDemo : Layer
@interface SpriteManual : SpriteDemo

El código hace lo siguiente:

-(void)nextCallback:(id)sender {
  Scene *s = [Scene node];
  [s add: [nextAction() node]];
  [[Director sharedDirector] replaceScene s];
}

Entonces, en resumen, la respuesta a su pregunta sería "ambos", usted usa Capa para representar su "Página de IU" real, pero adjunta la Capa a una nueva escena y reemplaza la escena actual en el director .

Otros consejos

Es fácil:

Tienen un CCLayer en esos ejemplos y un método de escena + que hace una nueva escena y adjunta la capa en ella. Porque una capa no es una " Página UI " como lo nombraste Una escena es una " Página UI " ;.

En ambos (escena y capa) puede agregar más capas como elementos secundarios. Así que puedes apilar tantas capas como quieras. En realidad, esta es una buena manera de habilitar multitouch: creando una capa para cada uno de sus objetos y habilitando toques en esas capas. En pocas palabras, la forma en que lo hicieron es correcta, por lo que también debe trabajar con capas y usar ese método de escena + para adjuntar la capa principal a la escena.

Espero que esto ayude. Lo siento por mi ingles. No es nativo.

Realmente no necesita usar una capa a menos que obtenga algún tipo de entrada táctil (porque es la única clase en Cocos2D que implementa TouchEventsDelegate). Las demostraciones funcionan bien si pones su código directamente en la escena sin la Capa, por lo que puedo decir, solo lo hicieron para demostrar otras funciones de Cocos2D (agregar hijos, establecer posiciones, etc.).

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