我有一个精灵使用计时器每 x 秒“射击”更多精灵:
self.shootingEngine = Timer.scheduledTimer(timeInterval: (Double(60)/Double(self.ratePerMinute)), target: self, selector: #selector(ShootingEnemy.shoot), userInfo: nil, repeats: true)
Run Code Online (Sandbox Code Playgroud)
所以时间间隔定义为:
(Double(60)/Double(self.ratePerMinute)) // Let's say it is 2 seconds.
Run Code Online (Sandbox Code Playgroud)
时间间隔,在此示例中为 2 秒。它每 2 秒触发一次 shot() 方法。现在,我想弄清楚如何获取计时器再次运行 shot() 方法之前的剩余时间。例如,我想知道距离下一次 shot() 还剩 0.74 秒
我正在考虑使用这个:
NSDate().timeIntervalSince1970 * 1000
Run Code Online (Sandbox Code Playgroud)
将时间保存到变量中,然后找出与当前时间的差值。但是,我首先想检查是否有更简单的方法来避免存储另一个实例变量。
做
let timeRemaining = shootingEngine.fireDate.timeIntervalSince(Date())
Run Code Online (Sandbox Code Playgroud)
如果您还有其他问题,请告诉我。祝你好运!
| 归档时间: |
|
| 查看次数: |
2966 次 |
| 最近记录: |