Ios 如何计算得分速度?
我试图计算玩家累积分数的速度,以便为游戏设置不同的属性。然而,我仍然停留在逻辑上,想知道如何做到这一点,以便它能够根据当前输入不断更新 为了清理这些东西,我创建了一个空白的Swift Xcode项目,其中有一个按钮和两个标签——一个表示分数,一个表示速度(scoreSpeed) 现在的问题是显示的速度为0,显然是因为它无法计算第一个得分位置(scorePos1)和第二个得分位置(scorePos2)之间的差值。我有一种感觉,这与不正确的“获取”分数值有关(或不正确的分数位置) 我是初学者,所以也许有更好的方法 以下是我的ViewController中的代码:Ios 如何计算得分速度?,ios,swift,timer,swift3,Ios,Swift,Timer,Swift3,我试图计算玩家累积分数的速度,以便为游戏设置不同的属性。然而,我仍然停留在逻辑上,想知道如何做到这一点,以便它能够根据当前输入不断更新 为了清理这些东西,我创建了一个空白的Swift Xcode项目,其中有一个按钮和两个标签——一个表示分数,一个表示速度(scoreSpeed) 现在的问题是显示的速度为0,显然是因为它无法计算第一个得分位置(scorePos1)和第二个得分位置(scorePos2)之间的差值。我有一种感觉,这与不正确的“获取”分数值有关(或不正确的分数位置) 我是初学者,所以也
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
是历史帐户。为什么在viewDidLoad
中调用此方法startTimer()
,因为它将始终返回0。其次,您必须将scorePos2
和scorePos1
都分配给score
。所以,永远都会有不同的意见!我定义了另一个具有不同间隔的计时器,该计时器具有获取历史变量的唯一功能,并将计算更改为scorePos1-scorePos2
。我仍然想知道是否没有其他方法可以在内存中短期存储变量。