如果我已经问过这个问题,我很抱歉,但是我很难过。

我有这样一个SKLabelNode设置:

    var label = SKLabelNode(fontNamed: "Baveuse")
 class GameScene: SKScene {

  func pointsLabel() -> SKLabelNode {


    label.position = CGPointMake(-80, 500)
    label.fontSize = 50.0
    label.name = "points"
    label.fontColor = UIColor.blackColor()

return label
  }


并像这样递增:

  override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        numPoints++
        label.text =  "\(numPoints)"


}


在单独的SKScene中,我将其设置如下:

    let score = SKLabelNode(fontNamed: "Baveuse")

    score.fontSize = 70.0
    score.fontColor = SKColor.blackColor()
    score.position = CGPointMake(size.width / 2, 500)
    score.text = "\(numPoints)"
    addChild(score)




  let highScore = SKLabelNode(fontNamed: "Baveuse")
    highScore.fontSize = 40.0
    highScore.fontColor = UIColor(red: 88.0/255.0, green: 148.0/255.0, blue:87.0/255.0, alpha: 1.0)

        highScore.text = String(format: "Best: %d", numPoints)

   }


我将如何做到这一点,以便它将numPoints中的最高分保存下来并保存到另一个高分为止?如有必要,将发布模式代码。

最佳答案

为此使用NSUserDefaults(因为您已为其添加标签)。游戏结束时,添加此if-statement

if (NSUserDefaults.standardUserDefaults().doubleForKey("highScore") >= numPoints){
   // New highscore
   NSUserDefaults.standardUserDefaults().setValue(numPoints, forKey: "highScore")
}


在这里,您检查numPoints值是否大于或等于(必须使用)(必须检查是否要使用等于),然后更新高分。

关于ios - 如何正确保存高分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34244131/

10-12 00:30