В моей игре метеоры падают с неба.Функция 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)
}
Я успешновозможность приостановить все анимации в моей GameScene с self.view?.isPaused = false
.Однако метеоры продолжают появляться, потому что сам код все еще выполняется.
Есть ли способ приостановить все продолжающиеся задержки в моей программе, чтобы, если игра была приостановлена на полпути с 3-секундной задержкой, то при ее возобновлении задержка продолжалась еще 1,5 секунды?Это будет означать, что скорость нереста метеоритов не будет прервана.Спасибо.