original - fondos de pantalla para iphone
¿Cocos2d agregando una imagen de fondo a una capa? (4)
En cocos2d podemos agregar cualquier nodo en cualquier nodo. Pero depende del nivel de jerarquía.
Puede agregar capas en escenas. Si desea la misma propiedad o busca todas las capas que agrega en un CCScene, puede agregarlas en CCScene (como en su segundo caso). pero si desea tener una característica diferente en cada capa, agréguelas a CCLayer.
CCLayer está diseñado para agrupar un conjunto de nodos / sprites para algún propósito. Por ejemplo, puede agregar una capa que incluya opciones después de pausar un juego, o una capa de HUD para mostrar algún tipo siempre en pantalla junto con alguna capa de desplazamiento (como en algunos juegos de plataforma de desplazamiento).
Finalmente, puede incluso CCNode en un CCScene, una capa en otra capa, e incluso un CCNode en un CCSprite. Pero el orden del dibujo en el contexto gráfico en cocos2d difiere.
Espero que tengas la diferencia.
¡Buena suerte!
Acabo de terminar de leer parte de la documentación de cocos2d y, por lo que tengo entendido, para agregar una imagen de fondo a una capa, debe hacer algo como:
Sprite * bg = [Sprite spriteWithFile:@"Background.png"];
[layer addChild:bg z:0];
Aunque en lo que respecta a mis pruebas, puedes agregar directamente el sprite a la escena de esta manera:
@implementation IntroScene
- (id) init {
self = [super init];
if (self != nil) {
Sprite * bg = [Sprite spriteWithFile:@"Background.png"];
[bg setPosition:ccp(240, 160)];
[self addChild:bg z:0];
[self addChild:[MenuLayer node] z:1];
}
return self;
}
¿Cuál es la diferencia entre estas 2 opciones y cuál es la mejor manera de establecer un fondo para una capa? Cualquier ayuda será apreciada.
No es necesario tener una capa, pero son útiles. Piense en las capas como una forma de agrupar sprites (tanto visual como organizativamente). Es posible que desee que las imágenes de fondo se agrupen como una capa y todos los enemigos en un juego como otra capa. Esto le permite tratar cada conjunto de forma más limpia. por ejemplo, puedes eliminar una capa específica en lugar de encontrar a todos los enemigos y eliminarlos.
Si te ayuda, juega con capas en Photoshop o en un programa de edición de gráficos. Las capas en cocos2d funcionan de manera similar.
Para una escena simple, agregar el fondo a una capa o a una escena no hará mucha diferencia. Pero no pasa mucho tiempo antes de que empiecen los beneficios de las capas.
También las capas controlan el orden del dibujo (por encima de cualquier orden de z entre capas).
En geoSpark, por ejemplo, tengo una capa de fondo, una capa de chispa, una capa de interfaz de usuario, etc. (simplificado). Pero esto me permite asegurarme de que mi UI esté siempre por encima de cualquier juego (la capa de chispa) y todo lo que está por encima del fondo.
Si tu juego solo hace una representación aditiva, el orden de sorteo no importará mucho. :)
- David
la escena es una pizarra, la capa es una página ... las noticias se escriben en la página, pero, si lo desea, puede escribir en la pizarra. Si quieres borrar todo lo nuevo.