2
NSUserdefaultsを使用して簡単な情報を保存しようとしています。私は1のアルファを持つSKSpriteを保存しようとしています。ここで私はそれをやっている方法です。なぜ保存しないのですか?
最初のシーン:ユーザーがレベルを完了すると、レベル選択 (スプライトアルファは0.2である):(レベル選択編集スプライトは1に等しくなるように)
GameViewController:
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")
}
}
レベル1:
func di dBegin(_接触: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星印:情報を保存する必要があるように私に
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
}
なぜ保存しないのかわかりません!
グッド目、それは同様に私に間違っていると感じました。.. –
私はそれが私に起こることはないと言いたいと思う。 – Mozahler
どのように私はこれを見ていないでしたか?ありがとう。しかし残念なことに、それはまだ値を保存していません。なぜ私は本当にわからない。私は最初のレベルを完了し、アルファは変更され、アプリケーションを終了し、再起動します。レベルセレクトではまだ0.2のノードにSKスプライトが表示されます。なぜこれができますか? –