【问题标题】:Swift game not updating highscore inside didMoveToViewSwift 游戏没有在 didMoveToView 中更新高分
【发布时间】:2015-10-03 08:03:01
【问题描述】:

我正在用 swift 创建一个游戏,并且分数运行良好。唯一的问题是高分。我创建了一个名为 checkScores() 的函数来检查分数是否大于高分。但高分仍为0。

func checkScores() {
    if scoreInt > highScoreInt {

        NSUserDefaults.standardUserDefaults().setInteger(scoreInt, forKey: "high")
        highScoreInt = NSUserDefaults.standardUserDefaults().integerForKey("high")
        NSUserDefaults.standardUserDefaults().synchronize()
        highScoreLbl.text = "HIGHSCORE : \(highScoreInt)"

    }

我在 didMoveToView 中调用了它。 我在游戏场景中创建了高分标签和整数,并在 initHud() 中设置了标签文本

func initHud() {
    scoreLbl = SKLabelNode(fontNamed: "Geneva")
    scoreLbl.position = CGPointMake(self.frame.size.width / 2, self.frame.size.height / 2)
    scoreLbl.text = "0"
    scoreLbl.fontSize = 100
    scoreLbl.alpha = 0.5
    addChild(scoreLbl)

    highScoreInt = NSUserDefaults.standardUserDefaults().integerForKey("high")
    NSUserDefaults.standardUserDefaults().synchronize()
    highScoreLbl = SKLabelNode(fontNamed: "Geneva")
    highScoreLbl.fontSize = 30
    highScoreLbl.position = CGPointMake(150, self.frame.size.height - 80)
    highScoreLbl.text = "HIGHSCORE : \(highScoreInt)"
    addChild(highScoreLbl)
}

当我运行游戏时,高分保持为零。我试图将 checkScore() 放在 didBeginContact 中并且工作正常。但为什么?因为物理每帧都会更新? 是否可以在 didMoveToView 中检查它?谢谢!

【问题讨论】:

    标签: swift sprite-kit


    【解决方案1】:

    将此代码放在 update() 中

        var highscore = 1
    
        let userDefaults = NSUserDefaults.standardUserDefaults()
    
        highscore = userDefaults.integerForKey("highscore")
    
        userDefaults.setValue(highscore, forKey: "highscore")
    
        if scoreCount > highscore {
           userDefaults.setValue(scoreCount, forKey: "highscore")
    
        }
    
        highScoreLabel.text = "highscore: \(highscore)"
    
        userDefaults.synchronize()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多