我创建了一个 super 简单的倒计时应用程序。按下按钮,倒数计时开始。最终结果的计算如下所示:

  • 10.0
  • 9.999
  • 9.998
  • ...

  • 每个整数代表一秒钟,因此您可以想象它运行很快。

    运行此循环时,如果它发现当前值为3.0或2.0或1.0或0.0,则其中有代码可以播放声音。

    一切都会触发,并且声音会播放,但是却有些毛刺。大约80%的时间是完美触发。其余时间要么延迟一秒钟,要么完全错过。声音效果对应用程序至关重要。

    我已经准备好了正常比赛,但没有任何改善。我当前的实现方式是使用 SKTAudio ,我觉得这对于我的需求来说有点过头了。

    有什么建议吗?

    最佳答案

    请注意一下-如果您正在使用Double类比较两个值,则可能会发现2.0值不是实数2.0,例如是2.0000000001。因此,2和2.0000001是不同的值,您的声音将不会播放

    使用可能会尝试。喜欢

    let checkValue: Double = 2 // your comparison value
    let timerValue = 2.00000001 //for example
    if (timerValue - Double(Int(timerValue))) == 0 && checkValue == timerValue {
        print("Cool")
    } else {
        print("Not cool")
    }
    

    或几乎相同
    let checkValue: Double = 2 // your comparison value
    let timerValue = 2.00000001 //for example
    
    if timerValue == Double(Int(timerValue)) && timerValue == checkValue {
        print("Cool")
    } else {
        print("Not cool")
    }
    

    09-04 10:26