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