【问题标题】:How do you store a GameScene so I can transition back to it from an InGame Menu?您如何存储 GameScene 以便我可以从 InGame 菜单转换回它?
【发布时间】: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,请告诉我。谢谢!

【问题讨论】:

    标签: swift sprite-kit


    【解决方案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 else{fatalError("No previous scene provided")}
        scene?.view?.presentScene(previousScene, transition: transition)
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-17
      • 2013-11-10
      • 2023-04-01
      • 2011-02-15
      • 2012-05-27
      • 1970-01-01
      • 2020-12-12
      相关资源
      最近更新 更多