1

我正在尝试用 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 mainMenu]

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

谢谢你的帮助。

4

1 回答 1

2

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

于 2012-08-22T08:10:09.433 回答