如何更改精灵的Z顺序?

JJR*_*JJR 8 objective-c z-order cocos2d-iphone

我想设置我在Objective-C中创建的精灵的Z顺序,特别是在Cocos2D中.

这是我在尝试构建以下代码时遇到的错误:

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

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

Z-Order必须能够以某种方式设置 - 它是否只能在实例化的行上设置而不是在创建之后设置?我是否必须为CCSprite的属性创建setter方法?为什么它不会有这些方法?

Jua*_*dez 40

如果您需要在添加精灵后重新排序,如GamingHorror所述,请使用:

[self reorderChild:sprite z:newZ];
Run Code Online (Sandbox Code Playgroud)

如果您只需要设置原始订单,则您的答案有效


JJR*_*JJR 6

弄清楚了:

将精灵添加到self时,需要添加一个参数:

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

[self addChild:mySprite z:1];
Run Code Online (Sandbox Code Playgroud)

z = 0是背景,最高的z索引将在其他精灵之上

-JJR

  • 您还可以使用reorderChild方法动态更改其z顺序 (3认同)