您如何存储 GameScene 以便我可以从 InGame 菜单转换回它?

Posted

技术标签:

【中文标题】您如何存储 GameScene 以便我可以从 InGame 菜单转换回它?【英文标题】:How do you store a GameScene so I can transition back to it from an InGame Menu? 【发布时间】:2017-09-28 02:10:08 【问题描述】:

各位程序员大家好。这是场景。用户可以在游戏期间访问一个 InGameMenuScene,允许他们访问设置等。 InGameMenuScene 上的其中一个按钮 BackToGame 应将您带回到原来所在的 GameScene。我需要帮助弄清楚如何存储 GameScene,然后在单击 BackToGame 按钮时访问存储的 GameScene。我尝试将它存储在 UserDefaults 中,但在 InGameMenu 中再次访问它时遇到问题。

当前游戏场景:

func menuButtonPressed()
let savedScene = BInNYGameScene.self
let userDefaults = UserDefaults.standard
    userDefaults.set(savedScene, forKey: "CurrentScene")
    userDefaults.set(count, forKey: "CurrentCount")
    userDefaults.set(hitCount, forKey: "CurrentHitCount")
    userDefaults.synchronize()

InGameMenuScene:

 func backToGame()
    let userDefaults = UserDefaults.standard
    let backToGameScene = userDefaults.object(forKey: "CurrentScene") as! SKScene
    let nextScene = backToGameScene(size: scene!.size)
    nextScene.scaleMode = .aspectFill
    scene?.view?.presentScene(nextScene, transition: transition)


如果有更好的方法来存储 GameScene 和检索 GameScene,请告诉我。谢谢!

【问题讨论】:

【参考方案1】:

在过渡到它之前,只需在 MenuScene 中跟踪它

当前游戏场景:

func toMenu()
    let menu = MenuScene(...)
    menu.previousScene = self
    scene?.view?.presentScene(self, transition: transition)


InGameMenuScene:

 weak var previousScene : SKScene?
 func backToGame()
    guard let previousScene = previousScene elsefatalError("No previous scene provided")
    scene?.view?.presentScene(previousScene, transition: transition)


【讨论】:

以上是关于您如何存储 GameScene 以便我可以从 InGame 菜单转换回它?的主要内容,如果未能解决你的问题,请参考以下文章

如何动态编写 React.useState 函数,以便您可以从 cms 获得尽可能多的输入类型

带有 SpriteKit 的 UITableView

如何从命令行启动CouchDB

从 GameScene 转到 viewController Swift 3

如何存储闭包完成处理程序以供以后调用?

如果用于身份验证的 JWT 令牌保存在 HTTP-Only cookie 中,您如何从 cookie 中读取它以便我可以将其包含在请求标头中?