如何更改精灵的Z顺序?

时间:2010-08-18 15:10:58

标签: objective-c cocos2d-iphone z-order

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

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

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

3 个答案:

答案 0 :(得分:40)

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

[self reorderChild:sprite z:newZ];

如果您只需要设置原始订单

,您的答案就有效

答案 1 :(得分:6)

想出来:

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

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

[self addChild:mySprite z:1];

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

-JJR

答案 2 :(得分:1)

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

查看最后一行的z位置,我希望这会对你有帮助

相关问题