スプライト シートを使用する 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 を実行したり、バッチ ノードを明示的に解放したりしないため、なぜこれが発生するのかわかりません。
とにかく、どうすればこの問題を解決できますか?
ありがとう!