我是新人,所以忍受我。
我正在使用此代码转换到另一个SKscene:
func moveToGame(game : gameType) {
let transition:SKTransition = SKTransition.fade(withDuration: 1)
let scene = SKScene(fileNamed: "GameScene")
scene?.scaleMode = .aspectFill
self.view?.presentScene(scene!, transition: transition)
}
游戏类型是游戏的难度,例如,简单,中等,难度。
当我进入下一个场景时,我希望能够访问gameType来决定游戏的播放方式。
我该怎么做?
提前谢谢!
答案 0 :(得分:2)
我建议使用与每个SKNode关联的userData
变量,它比使用UserDefaults的代码少,工作速度快。
func moveToGame(game : gameType) {
let transition:SKTransition = SKTransition.fade(withDuration: 1)
guard let scene = SKScene(fileNamed: "GameScene") else {fatalError("Could not find scene")
scene.scaleMode = .aspectFill
if(scene.userData == nil) {scene.userData = NSMutableDictionary()}
scene.userData["myVariable"] = myVariable
self.view?.presentScene(scene!, transition: transition)
}
答案 1 :(得分:0)
我建议使用UserDefaults
来存储和检索少量数据。这也将允许应用程序中的其他场景按您认为合适的方式访问数据。
Swift 3.1示例
在第一个场景中存储数据:
let store = UserDefaults.standard
store.setValue("hard", forKey: "GameType")
要在下一个场景中检索数据:
let store = UserDefaults.standard
let difficulty = store.value(forKey: "GameType")