我希望设置两个级别之间的转换(在一个级别完成后,使用cocos2d的一个光滑过渡转换到下一个级别).在我的GameLayer实现中,我有方法设置来执行诸如[self buildLevel:3]之类的操作来构建playfield.我需要做什么来实例化一个新的GameLayer或Layer节点或GameScene或Scene节点,以便能够执行以下操作:
GameLayer * nextLevelLayer;
[nextLevelLayer buildLevel:4];
…在3级和4级之间进行转换
也许我已经将我的代码放在了对Objective C的完全误解中.我假设你不能在init代码中设置一个新的GameLayer,因为它会挂起,不断创建新的节点.我可能在GameLayer的初始化代码中有太多的playfield设置代码,你们通常如何处理它?你是否在为游戏的主循环安排选择器之前设置了一个标志,然后如果设置了标志,在游戏的主循环中设置关卡,还是有更好的方法去做?
提前致谢!
解决方法
对于那些可能关心的人来说,这就是我最终做的事情:
GameScene * gs = [GameScene node]; [[Director sharedDirector] runScene: gs]; [[Director sharedDirector] replaceScene: [ShrinkGrowTransition transitionWithDuration:0.5 scene: gs]];
这是在一个关卡完成后在GameLayer实现中完成的.