我有一个使用精灵表的应用程序,是一个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或明确释放我的批处理节点,所以我不知道为什么会这样。
无论如何我如何解决这个问题?
谢谢!