ios - 如何计算得分速度?

标签 ios swift timer swift3

我正在尝试计算玩家累积分数的速度,以便为游戏玩法设置不同的属性。然而,我陷入了逻辑思考如何做到这一点,以便它会根据当前的输入不断更新。

为了清理一切,我创建了一个空白的 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/

相关文章:

ios - 如何将图像存储在 firebase 存储中并将它们的链接保存在数据库中?

ios - AdMob 错误链接器命令失败,退出代码为 1(使用 -v 查看调用)

java - 用定时器绘图不工作

java - 为什么此 Swing Timer 代码会抛出 NullPointerException?

ios - 通过 iOS 将用户和密码发送到网页

ios - 具有多行 UILabel 的自定义 Tableview 单元格需要动态高度

arrays - 在字符串数组中搜索多个单词(或字符)(swift)

Unix 中的 C++ 定时器

ios - 如何为我的自定义 Open Graph 故事选择要发布的灵活句子结构?

ios - react-native-fbsdk 不返回电子邮件