我在这里how save the current level读到了类似问题的答案,但是显然问题并没有在那里解决。谁能告诉我如何保存当前游戏水平?文件Level-1.json,Level-2.json,Level-3.json等中的每个级别。我是编码初学者。希望对您有所帮助。
我正在尝试在GameViewController.swift中使用它,但是当前级别仍然无法保存。我在做什么错了?
import UIKit
import SpriteKit
import GameplayKit
import AVFoundation
class GameViewController: UIViewController {
...
var currentLevelNum = 1
...
override func viewDidLoad() {
super.viewDidLoad()
UserDefaults.standard.set(currentLevelNum, forKey: "LevelKey")
let lastSavedLevelNum = UserDefaults.standard.object(forKey: "LevelKey")
setupLevel(levelNum: lastSavedLevelNum as! Int)
backgroundMusic?.play()
}
func setupLevel(levelNum: Int) {
let skView = view as! SKView
skView.isMultipleTouchEnabled = false
scene = GameScene(size: skView.bounds.size)
scene.scaleMode = .aspectFill
level = Level(filename: "Level_\(levelNum)")
scene.level = level
scene.addTiles()
scene.swipeHandler = handleSwipe(_:)
skView.presentScene(scene)
beginGame()
}
答案 0 :(得分:1)
我可以从您的代码中读取到的是, 您将应用
加载视图时,将levelKey保存为UserDefaults UserDefaults.standard.set(currentLevelNum, forKey: "LevelKey")
然后您检索
上的levelKey UserDefaults.standard.object(forKey: "LevelKey")
但是您将检索到的号码保存在哪里? 也许您可以这样做:
let lastSavedLevelNum = UserDefaults.standard.object(forKey: "LevelKey")
然后
setupLevel(levelNum: lastSavedLevelNum)