暂停精灵套件游戏并转换到主菜单

时间:2014-08-21 03:03:43

标签: ios objective-c save sprite-kit transition

我正在使用Xcode的sprite工具包开发一款游戏,我打算将其发送到AppStore。我有一个游戏场景,其中所有对象都是SKSpriteNodes,并且是单个SKNode * nodePlay的子节点。其中一个是暂停游戏并弹出自定义暂停菜单的按钮。在暂停菜单中,用户可以恢复,重新启动,进入设置,转到主菜单等。我想要保留的一个重要功能是暂停时的游戏状态,例如执行SKActions的对象的级别/定时器/位置。

我找到了几种方法可以做到这一点,但我想坦率地问一下是否有最好的' /首选方法以及原因。以下是我自己提出的研究中的一些内容:

1)使用两个视图控制器。第一个只运行游戏场景,暂停按钮将用户转换到第二个视图控制器,其他SKScenes将出现(设置场景,家庭场景......)。这样,当我在第一个视图控制器上设置nodePlay.paused = true并通过弹出转换到第二个视图控制器时,我弹出时将保留第一个视图控制器的状态(包括暂停任何SKActions)。

2)将游戏SKScene和暂停SKScene组合为单个SKScene,因此当我们暂停游戏时,当前视图将只显示一个SKNode * nodePause,其中有几个SKSpriteNode / SKLabelNode子项作为按钮(I&#39 ; ll set nodePlay.paused = true并将alpha设置为0.5,zposition = -10,因此它显然在后台)。

3)存档游戏SKScene并在场景之间转换,例如:

SKScene *pauseScene = [[MyPauseScene alloc] initWithSize:self.size];
[self.view presentScene:pauseScene];

如果我们恢复,我们将恢复存档的场景。我读到的一个主要问题是它没有保存SKActions的状态(如果我有moveBy,它将移动对象不是所希望的,或者如果我有移动到持续时间,对象将移动得非常慢......)

如果有更好的方式我没有列出,我真的很感激建议 - 谢谢!

0 个答案:

没有答案
相关问题