第二次同样的CCScene被替换后游戏崩溃
问题描述:
这是一个有点简单的问题,但我无法弄清楚。第二次同样的CCScene被替换后游戏崩溃
1->应用程序启动(与MainMenu的场景)
2->开始(子水平场景被替换)
3->选择第一级(Level1Scene被替换。游戏开始。)
4->返回主菜单。 (MainMenu的场景被替换)
5->开始(子水平场景被替换)
6->选择第一级
7->崩溃。
框(32842,0x3f5c9d98)malloc:*对象0x4bed44错误:释放对象的校验和不正确 - 对象可能在释放后被修改。 *在malloc_error_break中设置一个断点来调试
当我把场景a换成b时,是不是发布了?
据我所知,只有pushScene在内存中保持场景。
+(CCScene *) scene {
CCScene *scene = [CCScene node];
HelloWorldLayer *layer = [HelloWorldLayer node];
[scene addChild: layer];
return scene;
}
场景和图层是autorelease对象。必须在调用replaceScene时释放。 (如果在更换场景时先前的场景被释放)。
答
我已经解决了这个问题。它的奇怪,但工程。
我有一个CCSprite的子类叫做Collectable的类。第二次更换具有可收集对象的场景时,它会崩溃。我现在将其转换为CCNode及其作品。
也许它可以帮助别人。
只有第一次使用pushScene,然后使用replaceScene - – Guru 2013-03-21 11:36:21
我仍然有同样的问题。当我回到MainMenu场景时,Level1Scene必须被释放。为什么我得到 malloc:***对象0x4da934错误:不正确的校验和对于释放的对象 - 对象可能在释放后被修改。 ***第二次更换游戏场景时,在malloc_error_break中设置断点以调试 ? – Quaso 2013-03-22 07:59:15