Hello其他程序员。这是场景。用户可以在游戏期间访问InGameMenuScene,以允许他们访问设置等。 InGameMenuScene上的其中一个按钮BackToGame可以带您回到最初使用的GameScene。我需要帮助找出如何存储GameScene,然后在单击BackToGame按钮时访问存储的GameScene。我尝试将其存储在UserDefaults中,但我在InGameMenu中再次访问它时遇到了问题。
目前GameScene:
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,请告诉我。谢谢!
答案 0 :(得分:0)
在转换到MenuScene之前,只需跟踪它即可
目前GameScene:
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)
}