Singleton做什么?我怀疑这可能是原因,在替换场景时/之后保留场景/层或任何其他节点的引用。
我正在尝试用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]
菜单场景出现后,如何杀死游戏场景?
谢谢你的帮助。