que estoy tratando de colocar una serie de sprites en una capa, pero como yo quiero mover todos los sprites como un grupo, he creado un CocosNode, ponerlo en la misma tamaño como la pantalla y colóquelo en el centro de la pantalla, luego agregue los Sprites a ese nodo (lightNode) en lugar de agregarlos a la capa.Cocos2d - múltiples sprites en el nodo padre no capa
Lo que estoy viendo es que los sprites no aparecen en las correctas (misma?) Posiciones en comparación a cuando los coloco en una capa y no en el lightNode.
Hice un programa de prueba para mostrar el problema utilizando la plantilla de la aplicación XCode Cocos2d "Hello World" - Luego reemplacé el método -init() de la clase HelloWorld en HelloWorldScene.m con este código.
-(id) init
{
if((self=[super init]))
{
// create my parent node that will contain all the related sprites
lightPane = [[CocosNode alloc] init];
CGSize paneSize = { 480, 320 };
[lightPane setContentSize:paneSize];
[lightPane setPosition:ccp(240, 160)];
// add pane to layer
[self addChild:lightPane z:0];
// add a series of sprites to demonstrate the problem
int y = 40;
int x;
for (x=30; x<300; x+=20)
{
Sprite *sp = [Sprite spriteWithFile:@"pause.png"];
[sp setPosition:ccp(x, y)];
NSLog(@"Next sprite at position (%d, %d)", x, y);
[lightPane addChild:sp z:1];
//[self addChild:sp z:1];
x+= 20;
}
}
return self;
}
Este código hace referencia a un archivo PNG llamado "pause.png" - acaba de tomar cualquier pequeña imagen sobre píxeles 30x30 de tamaño y colocarlo en este proyecto para ejecutarlo.
Lo que verán es que los sprites aparecen a media altura de la pantalla, comenzando en el centro y en dirección hacia el lado derecho.
Si comenta la línea agregando el sprite a lightPane, y deja de comentar la línea debajo de él, y vuelve a ejecutar la muestra, verá que los sprites (correctamente) aparecen en los coords que deberían.
Obviamente, esto tiene algo que ver con la CocosNode estoy usando como un padre para los sprites. ¿Alguien ve lo que estoy haciendo mal aquí?
pregunta bien formada, y el buen ejemplo de código! +1 – nash