2010-08-18 4 views
8

Ciao, scusa se questa risposta è altrove, ma non ho potuto trovarla.Come cambio l'ordine Z degli sprite in Objective-C?

È piuttosto semplice, voglio impostare l'ordine Z degli sprite che creo in Objective-C, in particolare in Cocos2D.

Questo è l'errore che ottengo quando si cerca di costruire il seguente codice:

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

Z-Ordine deve essere in grado di impostare in qualche modo - Può essere impostato solo sulla linea di istanziazione e non dopo che è stata creata? Devo creare un metodo setter per un attributo per CCSprite? Perché non avrebbe già quei metodi?

Grazie per il vostro aiuto, -JJR

risposta

5

capito:

Quando si aggiunge lo sprite di auto, hanno bisogno di aggiungere un parametro:

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

[self addChild:mySprite z:1]; 

z = 0 è sfondo, l'indice z più alto sarà in cima agli altri sprite

-JJR

+3

è anche possibile utilizzare il metodo reorderChild per modificarne l'ordine z al volo – LearnCocos2D

40

@JJR - alla tua domanda iniziale, se avete bisogno di riordinare dopo aver aggiunto gli sprite, come ha detto GamingHorror, utilizzare

[self reorderChild:sprite z:newZ]; 

La tua risposta funziona se tutto ciò che serve è quello di impostare l'ordine originale

JCM

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

check-out la posizione z in ultima riga, spero che questo vi aiuterà a