Swift3 为什么这不能节约?
我正在尝试使用NSUserdefaults保存一条简单的信息。我正试图拯救一个精灵,使其阿尔法为1。下面是我是怎么做的 第一个场景:级别选择(精灵alpha为0.2) 当用户完成级别时:(编辑级别中的精灵选择为等于1) GameViewController:Swift3 为什么这不能节约?,swift3,Swift3,我正在尝试使用NSUserdefaults保存一条简单的信息。我正试图拯救一个精灵,使其阿尔法为1。下面是我是怎么做的 第一个场景:级别选择(精灵alpha为0.2) 当用户完成级别时:(编辑级别中的精灵选择为等于1) GameViewController: override func viewDidLoad() { super.viewDidLoad() if let view = self.view as! SKView? { // Load the SKS
override func viewDidLoad() {
super.viewDidLoad()
if let view = self.view as! SKView? {
// Load the SKScene from 'GameScene.sks'
if let scene = levelselectscene {
// Set the scale mode to scale to fit the window
scene.scaleMode = .fill
// Present the scene
view.presentScene(scene)
}
view.ignoresSiblingOrder = true
view.showsFPS = true
view.showsNodeCount = true
}
}
override var shouldAutorotate: Bool {
return true
}
级别选择:
override func didMove(to view: SKView) {
if unlockLevelTwoButton == true {
levelselectscene?.childNode(withName: "LevelTwoButton")?.alpha = 1
UserDefaults.standard.set(unlockLevelTwoButton, forKey: "LevelTwoUnlocked")
print("I got this far")
}
}
第一级:
func didbegen(uu联系人:skphysiccontact){
三星:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if isLevelOneCompleted == true{
unlockLevelTwoButton = true
UserDefaults.standard.set(isLevelOneCompleted, forKey: "LevelOne")
UserDefaults.standard.synchronize()
levelselectscene?.scaleMode = .fill
levelselectscene?.childNode(withName: "levelTwoButton")?.alpha = 1
self.view?.presentScene(levelselectscene)
}
无法理解它为什么不保存!根据您显示的代码,您使用一个名称保存它,并使用不同的名称(LevelTwoUnlocked)和(LevelTwoButton)检索它我希望我能说这从未发生在我身上。哇,我怎么没有看到这一点?谢谢。但遗憾的是,它仍然没有保存值。我不知道为什么。我已经完成了第一个关卡,alpha被更改,退出应用程序,然后重新启动。关卡选择仍然在0.2的节点上显示SKsprite。为什么会这样?还有其他建议吗ons?我觉得我完全是根据你的问题和提供的代码来回答这个问题的。请接受并投票,然后用附加代码提出一个新问题。无论你还有什么问题,它们都可能在你的代码库的其他地方。我很乐意继续帮助你。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if isLevelOneCompleted == true{
unlockLevelTwoButton = true
UserDefaults.standard.set(isLevelOneCompleted, forKey: "LevelOne")
UserDefaults.standard.synchronize()
levelselectscene?.scaleMode = .fill
levelselectscene?.childNode(withName: "levelTwoButton")?.alpha = 1
self.view?.presentScene(levelselectscene)
}
if let z = UserDefaults.standard.object(forKey: "LevelTwoButton")
{
unlockLevelTwoButton = z as! Bool
}