6

我希望在两个级别之间设置一个过渡(在一个级别完成后,使用 cocos2d 的平滑过渡之一过渡到下一个级别)。在我的 GameLayer 实现中,我设置了方法来执行诸如 [self buildLevel: 3] 之类的操作来构建游戏场。我需要做什么来实例化新的 GameLayer 或 Layer 节点或 GameScene 或 Scene 节点才能执行以下操作:

GameLayer * nextLevelLayer;

[nextLevelLayer buildLevel: 4];

... 在 3 级和 4 级之间进行过渡

也许我在对Objective C的完全误解中布置了我的代码。我假设你不能在init代码中设置一个新的GameLayer,因为它会挂起,不断地创建新的节点。我的 GameLayer 的初始化代码中可能有太多的游戏场设置代码,你们通常如何处理它?您是否在为游戏的主循环安排选择器之前设置了一个标志,然后如果设置了标志,则在游戏的主循环中设置关卡,或者有更好的方法吗?

提前致谢!

4

1 回答 1

14

对于那些可能关心的人,这就是我最终做的事情:

GameScene * gs = [GameScene node];
[[Director sharedDirector] runScene: gs];
[[Director sharedDirector] replaceScene: [ShrinkGrowTransition transitionWithDuration:0.5 scene: gs]];

这是在关卡完成后在 GameLayer 实现中完成的。

于 2008-12-11T15:02:31.753 回答