启用arc的cocos2d-旧场景在替换场景后仍然存在



我正在尝试用cocos2d实现一个游戏。我根据本教程中的说明启用了arc。http://www.learn-cocos2d.com/2012/04/enabling-arc-cocos2d-project-howto-stepbystep-tutorialguide/

在用主菜单场景替换游戏场景后,我意识到了一个奇怪的行为,我无法解决这个问题。替换后,新场景出现并按我的预期工作,但游戏场景(旧场景)仍然会产生触摸反应。我以为当我替换场景时,旧的场景应该被完全移除,但它仍然生活在新的场景下。

一些相关代码如下:

辛格尔顿:

+(void) go: (CCLayer *) layer{
    CCDirector *director = [CCDirector sharedDirector];
    CCScene *newScene = [Singelton wrap:layer];
    if ([director runningScene]) {
        [director replaceScene: [CCTransitionFlipX transitionWithDuration:0.5 scene:newScene]];
    } else {
        [director pushScene:newScene];
    }
}
+(CCScene *) wrap: (CCLayer *) layer{
    CCScene *newScene = [CCScene node];
    [newScene addChild: layer];
    return newScene;
}
+(void) mainMenu
{
    CCLayer *layer = [MainMenu node];
    [Singleton go:layer];
}

当我需要转到主菜单场景时,我调用singleton类如下

[Singleton mainMenu]

菜单场景出现后,如何杀死游戏场景?

谢谢你的帮助。

Singleton做什么?我怀疑这可能是原因,在替换场景时/之后保留场景/层或任何其他节点的引用。

最新更新