我正在尝试计算玩家累积分数的速度,以便为游戏玩法设置不同的属性。然而,我陷入了逻辑思考如何做到这一点,以便它会根据当前的输入不断更新。
为了清理一切,我创建了一个空白的 Swift Xcode 项目,其中包含一个按钮和两个标签 - 一个用于分数,一个用于速度 (scoreSpeed)。
现在的问题是显示的速度为0,显然是因为它无法计算第一个得分位置(scorePos1)和第二个得分位置(scorePos2)之间的差异。我有一种感觉,这与错误“获取”分数值(或错误的 ScorePos 放置)有关。
我是初学者,所以也许有更好的方法。
这是我的 ViewController 中的代码:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
startTimer()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
var score = Double()
var scorePos1 = Double()
var scorePos2 = Double()
var scoreSpeed = Double()
var timerInt: Double = 5.0
@IBOutlet weak var scoreLabel: UILabel!
@IBOutlet weak var speedLabel: UILabel!
@IBAction func Button(_ sender: Any) {
score += 1.0
scoreLabel.text = "Score: \(score)"
scorePos1 = score
}
var speedTimer = Timer()
func startTimer(){
//speedTimer.invalidate()
speedTimer = Timer.scheduledTimer(timeInterval: timerInt, target: self, selector: #selector(calcSpeed), userInfo: nil, repeats: true)
}
func calcSpeed(){
scorePos2 = score
scoreSpeed = (scorePos2 - scorePos1)/timerInt
speedLabel.text = "Speed: \(scoreSpeed)"
}
}
最佳答案
按下按钮会将 scorePos1
设置为 score
,并且 calcSpeed
函数将 scorePos2
设置为 score
,所以它们都是分数。
在计算速度后将scorePos2
设置为得分。
还有,
scorePos1 - scorePos2
如果scorePos2
是历史账户。
关于ios - 如何计算得分速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44069192/