NSUserDefaults在其他场景中回忆

时间:2015-07-28 21:00:29

标签: swift sprite-kit scene

我遵循了这个建议post。我现在有

class GameOverScene: SKScene {

var score = 0

override func didMoveToView(view: SKView) {


   NSUserDefaults.standardUserDefaults().integerForKey("highscore")

   if score > NSUserDefaults.standardUserDefaults().integerForKey("highscore") {
      NSUserDefaults.standardUserDefaults().setInteger(score, forKey: "highscore")
      NSUserDefaults.standardUserDefaults().synchronize()
   }

   NSUserDefaults.standardUserDefaults().integerForKey("highscore")

   }
}

我有更多代码,当满足某个参数时,会在分数上加1。但我的问题是如何在另一个场景中回忆起("高分")键。当游戏结束时,会调用另一个场景,它被称为GameOverScene。

class GameOverScene: SKScene {

var gameOverLabel = SKLabelNode()

override func didMoveToView(view: SKView) {

    gameOverLabel.text = //here I want the highScore to be displayed
    gameOverLabel.fontColor = UIColor.blackColor()
    gameOverLabel.fontName = "Helvetica"
    gameOverLabel.fontSize = 100
    gameOverLabel.position = CGPointMake(frame.midX, frame.midY)
    self.addChild(gameOverLabel)

   }
}

我需要做些什么才能将高分数添加到我的场景中

1 个答案:

答案 0 :(得分:0)

该行

NSUserDefaults.standardUserDefaults().integerForKey("highscore")

什么都不做(两次)。您可以通过将用户默认值分配给变量来检索值,例如显示它们

let score = NSUserDefaults.standardUserDefaults().integerForKey("highscore")
label.text = "\(score)"

您可以在if关闭的第一行中设置