0

代替クラスのメソッド宣言では、スプライトが追加される CCLayer ポインターと、スプライトおよびスプライトシート ポインターを渡します。

+(void) toggleSeedSelectionScreen:(CCLayer*)layer 
                   withSeedSprite:(CCSprite*)seedSprite
              withSeedSpriteSheet:(CCSpriteBatchNode*)seedSpriteSheet;

私の .m の toggleSeedSelectionScreen メソッドで、次のようにスプライトシートとスプライトを追加します。

[seedSpriteSheet addChild:seedSprite];
[layer addChild:seedSpriteSheet z:14];

これはうまくいきます。奇妙な動作をしているように見えるのは、シードスプライトシートを削除するために CCLayer (レイヤー) でメソッドが呼び出されても何も起こらないことです。

[self removeChild:seedSpriteSheet cleanup:YES];

クラスメソッドがレイヤー内のメソッドであった場合、正常に機能しました。明らかな理由はありますか?

レイヤーに追加された後、 po seedSpriteと入力しても、コンソールで親オブジェクトであることを認識していないようです。

4

1 に答える 1

1

試す [seedSpriteSheet removeFromParentAndCleanup:YES];

編集:レイヤーのインスタンスメソッドに変更したときに機能したと言いました..だから、このようなことをしてみませんか: [[[myobject alloc]init] <instance method> ];. 私はそれを使用したので、それが機能することを知っています

于 2012-04-24T18:07:04.160 に答える