8

我想设置我在 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 方法吗?为什么它没有这些方法?

4

3 回答 3

39

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

[self reorderChild:sprite z:newZ];

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

于 2011-03-20T22:43:19.100 回答
6

弄清楚了:

在给self添加精灵时,需要添加一个参数:

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

[self addChild:mySprite z:1];

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

-JJR

于 2010-08-18T17:08:19.497 回答
1
_background.name = @"background";
[self addChild:_background];
_background.zPosition =-5;

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

于 2014-04-07T16:39:17.953 回答