2011-08-03 20 views
0

在Cocos2d我有2个类,HelloWorldScene(Cocos2d模板的标准主类)和OptionsScene。我从HelloWorldScene启动OptionsScene,并且当我完成使用OptionsScene时,我从OptionScene启动HelloWorldScene。如何阻止从Cocos2d中的另一个类中调用init?

我的问题是当我从OptionsScene启动HelloWorldScene时调用init,我不想让init被调用,因为它基本上重置了我的游戏。

这里是我使用从OptionsScene推出HelloWorldScene代码:

HelloWorld *hw = [HelloWorld alloc]; 
[hw loadWithParticleColor:particleColor andBloppleColor:bloppleColor]; 
[hw release]; 
[[CCDirector sharedDirector] replaceScene:[CCTransitionRotoZoom transitionWithDuration:1.0 scene:[HelloWorld node]]]; 

任何提示或解决方案将是很大的帮助!

+1

在.h文件中创建一个HelloWorld指针,在启动应用程序时分配并初始化一次,并在您想要移动到该场景时移动到它。请记住也要释放它。 – msgambel

回答

0

由于它是一个相对简单的层次结构,因此可以使用CCDirector的pushScene:方法并在HelloWorldScene的顶部添加OptionsScene。关闭popScene和你的HelloWorldScene应该以你留下的状态出现。

当你想节约资源时,通常会使用替换场景,在这种情况下不需要替换场景。

相关问题