2010-08-18 12 views
8

Hola, lo siento si esto se responde en otro lugar, pero no pude encontrarlo.¿Cómo cambio el orden Z de los sprites en Objective-C?

Es bastante simple, quiero establecer el orden Z de los sprites que creo en Objective-C, específicamente en Cocos2D.

Este es el error que consigo al intentar construir el siguiente código:

CCSprite *mySprite = [CCSprite spriteWithFile:@"Image.png" rect:CGRectMake(0, 0, 96, 24)]; 
mySprite.zOrder = 0; 

...220: error: object cannot be set - either readonly property or no setter found

orden Z debe ser capaz de ajustar de alguna manera - puede que sólo se puede ajustar en la línea de instanciación y no después de que ha sido creado? ¿Tengo que crear un método setter para un atributo para CCSprite? ¿Por qué no tendría ya esos métodos?

Gracias por su ayuda, -JJR

Respuesta

5

lo descubrió:

Al agregar el sprite a uno mismo, es necesario añadir un parámetro:

CCSprite *mySprite = [CCSprite spriteWithFile:@"mySpriteImage.png" rect:CGRectMake(0, 0, 96, 24)]; 

[self addChild:mySprite z:1]; 

z = 0 es fondo, el índice z más alto estará en la parte superior de los otros sprites

-JJR

+3

también se puede utilizar el método reorderChild para cambiar su orden z sobre la marcha – LearnCocos2D

40

@JJR - a su pregunta original, si es necesario reordenar después de añadir los sprites, como dijo GamingHorror, utilice

[self reorderChild:sprite z:newZ]; 

Su respuesta funciona si todo lo que necesita es establecer el orden original

JCM

1
_background.name = @"background"; 
[self addChild:_background]; 
_background.zPosition =-5; 

salida la posición z en la última línea, espero que esto le ayudará a

Cuestiones relacionadas