第二次相同的CCScene被替换后游戏崩溃

时间:2013-03-21 11:08:06

标签: replace cocos2d-iphone scene ccscene

这是一个简单的问题,但我无法理解。

1→应用程序启动(使用MainMenu场景)

2→开始(替换子级别场景)

3→选择第一级(Level1Scene被替换。游戏开始。)

4->返回主菜单。 (MainMenu场景被替换)

5→开始(替换子级别场景)

6->选择第一级

7->崩溃。

box(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;
}

场景和图层是自动释放对象。调用replaceScene时必须释放。 (如果在替换场景时释放了上一个场景。)

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。它奇怪但有效。

我有一个类CCSprite的子类叫做Collectable。当第二次替换具有Collectable对象的场景时,它会出现c房崩溃。我把它转换为CCNode,现在它的作品。

也许对某人有所帮助。