【发布时间】:2014-07-16 15:30:45
【问题描述】:
我的情况是我有一个GameMenuScene,在用户选择一个级别后,我想呈现LevelScene。但我不想丢弃之前的GameMenuScene,因为LevelScene实际上是GameMenuScene的@property,无论用户是否完成关卡,都将保存为LevelScene的@property ,GameMenuScene 应该能够在用户完成或退出关卡后访问。如果我只是使用presentScene:transition,GameMenuScene 将被丢弃,信息无法回传。
我的问题:有没有办法在不丢弃前一个的情况下堆叠或推送场景(最好使用过渡动画)?我在 SKScene 的 Apple 文档中找不到用于此特定目的的方法。
注意:另一个 StackOverflow 对类似问题的回答建议创建一个新的 UIViewController,在其中显示 LevelScene,然后以模态方式显示 UIViewController。但我希望 Apple 文档中有一个现有的方法,我错过了以模态方式呈现场景本身的场景,而无需创建 UIVIewControllers。
【问题讨论】:
-
Kobold Kit 具有带过渡的推送/弹出场景功能,应该很容易提取/调整:github.com/KoboldKit/KoboldKit/blob/master/KoboldKit/… 请注意,当有一个场景“推到顶部”时,“背景”场景既不活动也不绘制最近的一个”。
-
您也可以尝试设置一个委托来来回传达场景,以便您的第二个场景(关卡场景)可以访问菜单场景。此外,您的所有其他级别都将具有相同的委托,您可以在菜单中设置一个方法来提取每个级别的信息。
标签: ios objective-c sprite-kit skscene