gpt4 book ai didi

Swift 游戏未更新 didMoveToView 内的高分

转载 作者:行者123 更新时间:2023-11-30 14:13:59 25 4
gpt4 key购买 nike

我正在用 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 中检查它?谢谢!

最佳答案

将此代码放入 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()

关于Swift 游戏未更新 didMoveToView 内的高分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31410779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com