我在游戏中使用计时器,想显示当前分数并保存最高分。我该怎么做?
Im using a timer for my game and would like to show the current score and save the high score. How would I do this?
计时器从零开始计时。你持续的时间越多,分数越高。我将如何显示当前分数并使用计时器保存最高分?我让计时器开始工作,但我遇到了这个问题。我在 spritekit 和 Swift 中!谢谢!
func updateTimer() {
fractions += 1
if fractions == 100 {
seconds += 1
fractions = 0
}
if seconds == 60 {
minutes += 1
seconds = 0
}
let fractionsString = fractions > 9 ? "\(fractions)" : "0\(fractions)"
let secondsString = seconds > 9 ? "\(seconds)" : "0\(seconds)"
let minutesString = minutes > 9 ? "\(minutes)" : "0\(minutes)"
timerString = "\(minutesString):\(secondsString).\(fractionsString)"
countUpLabel.text = timerString
}
//EDIT..............
func saveHighScore() {
let defaults=NSUserDefaults()
let highscore=defaults.integerForKey("highscore")
if(timerString > highscore)
{
defaults.setInteger(timerString, forKey: "highscore")
}
let highscoreshow = defaults.integerForKey("highscore")
endOfGameHighScoreLabel.text = String(highscoreshow)
}
与其尝试存储和递增三个单独的值,不如存储单个整数 score,然后每次计算单独的值以供显示更简单。
然后比较并保存您的高分,这是一个简单的整数比较。
func updateTimer() {
self.score++
countUpLabel.text=self.timeStringForScore(self.score)
}
func timeStringForScore(score:Int) -> String {
let minutes:Int=score/6000;
let seconds:Int=(score-minutes*6000)/100
let fractions:Int = score-minutes*6000-seconds*100
return String(format: "%02d:%02d:%02d", minutes,seconds,fractions)
}
func saveHighScore() {
let defaults=NSUserDefaults()
let highscore=defaults.integerForKey("highscore")
if(self.score > highscore)
{
defaults.setInteger(self.score, forKey: "highscore")
}
endOfGameHighScoreLabel.text = self.timeStringForScore(highscore)
}
计时器从零开始计时。你持续的时间越多,分数越高。我将如何显示当前分数并使用计时器保存最高分?我让计时器开始工作,但我遇到了这个问题。我在 spritekit 和 Swift 中!谢谢!
func updateTimer() {
fractions += 1
if fractions == 100 {
seconds += 1
fractions = 0
}
if seconds == 60 {
minutes += 1
seconds = 0
}
let fractionsString = fractions > 9 ? "\(fractions)" : "0\(fractions)"
let secondsString = seconds > 9 ? "\(seconds)" : "0\(seconds)"
let minutesString = minutes > 9 ? "\(minutes)" : "0\(minutes)"
timerString = "\(minutesString):\(secondsString).\(fractionsString)"
countUpLabel.text = timerString
}
//EDIT..............
func saveHighScore() {
let defaults=NSUserDefaults()
let highscore=defaults.integerForKey("highscore")
if(timerString > highscore)
{
defaults.setInteger(timerString, forKey: "highscore")
}
let highscoreshow = defaults.integerForKey("highscore")
endOfGameHighScoreLabel.text = String(highscoreshow)
}
与其尝试存储和递增三个单独的值,不如存储单个整数 score,然后每次计算单独的值以供显示更简单。
然后比较并保存您的高分,这是一个简单的整数比较。
func updateTimer() {
self.score++
countUpLabel.text=self.timeStringForScore(self.score)
}
func timeStringForScore(score:Int) -> String {
let minutes:Int=score/6000;
let seconds:Int=(score-minutes*6000)/100
let fractions:Int = score-minutes*6000-seconds*100
return String(format: "%02d:%02d:%02d", minutes,seconds,fractions)
}
func saveHighScore() {
let defaults=NSUserDefaults()
let highscore=defaults.integerForKey("highscore")
if(self.score > highscore)
{
defaults.setInteger(self.score, forKey: "highscore")
}
endOfGameHighScoreLabel.text = self.timeStringForScore(highscore)
}