Ich versuche, eine einfache Information mit NSUserdefaults zu speichern. Ich versuche einen SKSprite zu speichern, um ein Alpha von 1 zu haben. Hier ist, wie ich es mache.Warum spart das nicht?
Erste Szene: Level wählen (Sprite alpha 0.2) Wenn der Benutzer-Ebene ergänzt:
GameViewController (edit Sprite in Level auswählen man gleich):
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
}
Level auswählen:
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")
}
}
Ebene eins:
func di dBegin (_ Kontakt: SKPhysicsContact) {
var bodyA = contact.bodyA
var bodyB = contact.bodyB
let threeStars = SKScene(fileNamed: "LevelCompleted3Star")
let fadeAction = SKAction.fadeAlpha(by: 1, duration: 0.45)
if bodyA.categoryBitMask == 1 && bodyB.categoryBitMask == 2 || bodyA.categoryBitMask == 2 && bodyB.categoryBitMask == 1{
print("TEST")
levelOneCompleted() //islevelonecompleted
unlockLevelTwoButton = true
//3 stars
threeStars?.scaleMode = .fill
self.view?.presentScene(threeStars!, transition: .fade(withDuration: 0.3))
}
3 Sterne:
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)
}
Für mich sieht es aus wie die Informationen speichern soll. Was mache ich falsch? Ich habe auch die Schlüssel eingestellt, um abzurufen:
Kann nicht herausfinden, warum es nicht spart!
gutes Auge Abrufen, fühlte es sich auch für mich falsch .. –
Ich wünschte, ich könnte sagen, es passiert mir nie. – Mozahler
WOW, wie habe ich das nicht gesehen? Danke dafür. Aber leider spart es immer noch nicht den Wert. Ich bin mir nicht wirklich sicher warum. Ich habe die erste Stufe abgeschlossen, Alpha wird geändert, die App beendet und dann neu gestartet. Die Level-Auswahl zeigt immer noch den SKsprite an einem Knoten von 0,2. Warum kann das sein? –