我想设置我在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方法?为什么它不会有这些方法呢?
答案 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位置,我希望这会对你有帮助