0

我有一个使用精灵表的应用程序,它是一个 Cocos2D/UIKit 应用程序。在我的场景的 init 方法中,我这样做:

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

现在当游戏结束时,我这样做:

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

这会导致当前仍作为孩子的 CCSprite 保留在那里,所以一旦我完成 UIKit 视图转换到我的另一个UIViewController我尝试在我CCLayer的类(场景所在的类)中调用一个方法来删除所有的孩子在我CCSpriteBatchNode的 中,应用程序与EXC_BAD_ACCESS.

现在我必须在此时调用该方法,因为我想在我进行自定义视图转换时实现敌人仍在屏幕上的效果,这样它们就不会在我完成切换视图之前神奇地消失。此外,我不会在任何地方进行 replaceScene 或明确释放我的批处理节点,所以我不知道为什么会发生这种情况。

无论如何,我将如何解决这个问题?

谢谢!

4

0 回答 0