0

スプライト シートを使用する Cocos2D/UIKit アプリを使用しています。私のシーンの init メソッドでは、次のようにします。

spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"TheSpriteSheet.pvr.ccz"];
[self addChild:spriteSheet z:1];

ゲームが終わったら、次のようにします。

[[[CCDirector sharedDirector] actionManager] removeAllActions];
[self unscheduleAllSelectors];

これにより、現在まだ子として残っている CCSprites がそこに残るため、UIKit ビューの別のビューへの移行が完了したら、クラス (シーンがあるクラス)UIViewControllerでメソッドを呼び出して、以前のすべての子を削除しようとします。CCLayer私のCCSpriteBatchNodeでは、アプリが でクラッシュしEXC_BAD_ACCESSます。

ビューの切り替えが完了する前に敵が魔法のように消えないように、カスタム ビューの遷移を行っている間、敵がまだ画面に表示されているという効果を達成したいので、この時点でメソッドを呼び出す必要があります。また、どこでも replaceScene を実行したり、バッチ ノードを明示的に解放したりしないため、なぜこれが発生するのかわかりません。

とにかく、どうすればこの問題を解決できますか?

ありがとう!

4

0 に答える 0