8

Objective-C、特に Cocos2D で作成したスプライトの Z オーダーを設定したいと考えています。

これは、次のコードをビルドしようとしたときに発生するエラーです。

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 オーダーは何らかの方法で設定できる必要があります。作成された後ではなく、インスタンス化の行でのみ設定できますか? CCSprite の属性のセッター メソッドを作成する必要がありますか? それらのメソッドがまだないのはなぜですか?

4

3 に答える 3

39

GamingHorror が言ったように、スプライトを追加した後に並べ替える必要がある場合は、次を使用します。

[self reorderChild:sprite z:newZ];

元の順序を設定するだけでよい場合、答えは機能します

于 2011-03-20T22:43:19.100 に答える
6

理解した:

スプライトを自分自身に追加するときは、パラメーターを追加する必要があります:

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 に答える