【发布时间】:2018-12-20 02:59:32
【问题描述】:
在我的游戏中,流星从天而降。 spawnMeteorite 函数在游戏开始时调用,并在满足延迟后调用自身,此时陨石之间的新延迟比以前略小。
func spawnMeteorite(timeInterval:Double) {
delay(timeInterval) {
self.spawnMeteorite(timeInterval: timeInterval*0.9)
}
// Create meteorites
}
func delay(_ delay:Double, closure:@escaping ()->()) {
let when = DispatchTime.now() + delay
DispatchQueue.main.asyncAfter(deadline: when, execute: closure)
}
我已经成功地使用self.view?.isPaused = false 暂停了我的 GameScene 中的所有动画。然而,流星继续产生,因为代码本身仍在运行。
有什么方法可以暂停我的程序中所有正在进行的延迟,这样如果游戏在 3 秒延迟中途暂停,当恢复时,延迟会再持续 1.5 秒?这意味着陨石的生成速度不会被打断。谢谢。
【问题讨论】:
标签: swift sprite-kit