でそれらを追加するとき、私はスプライトが追加されたCCLayerポインタと、スプライトとspritesheetポインタを渡す除去することに失敗:Cocos2D:スプライト代替クラスの私のメソッド宣言は、クラスメソッド
+(void) toggleSeedSelectionScreen:(CCLayer*)layer
withSeedSprite:(CCSprite*)seedSprite
withSeedSpriteSheet:(CCSpriteBatchNode*)seedSpriteSheet;
toggleSeedSelectionScreen方法で私の.mで
は、私のようなspritesheetとスプライトを追加します。
[seedSpriteSheet addChild:seedSprite];
[layer addChild:seedSpriteSheet z:14];
これが正常に動作します。私のCCLayer(レイヤー)でメソッドが呼び出されてseedSpriteSheetが削除されると、何も起こりません。
[self removeChild:seedSpriteSheet cleanup:YES];
クラスメソッドがレイヤー内のメソッドであった場合、正常に機能しました。理由は何ですか?
レイヤーに追加された後、po seedSpriteと入力するとコンソールの親オブジェクトがわからないようです。
あなたはまだブレークポイントを設定して、cocos2dライブラリのコードをステップしてみましたか? (別名:これは、ソースライブラリを開くための多くの栄光のメリットの1つです!) – MechEthan
"クラスメソッドがレイヤーのメソッドであったとき、うまくいきました。??????" 私はこれを理解することができません...詳細を教えてください。 一般的に、この自己はあなたが作ったレイヤークラスのオブジェクトを示しています。この自己はあなたのクラスを代表するでしょう。クラスはスプライトシートの親ではありません。あなたのクラスオブジェクトは親です。 –
Nikhil:私の方法は、更新メソッドを持つ私のメインのCCLayerと同じクラスにいました。今、私のメインのCCLayerで見た目をきれいにするために、このメソッドは別のクラスにあります。 – VagueExplanation