Я работаю над простой карточной игрой, в которой после того, как игрок нажмет кнопку, три компьютера с искусственным интеллектом будут поочередно поворачиваться. Тем не менее, мне нужно, чтобы между паузами была пауза.Несколько задержек в Swift
Это то, что мне нужно:
playerButton> PAUSE> computer1Goes> PAUSE> computer2Goes> PAUSE> computer3Goes
Код:
@IBAction func placeCardAction(sender: UIButton) {
// playerButton does this action
var playerCardOnTop = game!.player.deck.placeCard()
middleDeck.addSingleCard(playerCardOnTop)
updateCardCount()
// Start computer actions
let delay = 2.0 * Double(NSEC_PER_SEC)
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(time, dispatch_get_main_queue()) {
self.game?.computer1PlacesCard(&self.middleDeck)
self.updateCardCount()
}
let delay2 = 2.0 * Double(NSEC_PER_SEC)
let time2 = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(time2, dispatch_get_main_queue()) {
self.game?.computer2PlacesCard(&self.middleDeck)
self.updateCardCount()
}
let delay3 = 2.0 * Double(NSEC_PER_SEC)
let time3 = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(time3, dispatch_get_main_queue()) {
self.game?.computer3PlacesCard(&self.middleDeck)
self.updateCardCount()
}
}
К сожалению, все задержки запуска/end в одно и то же время, поэтому все, что происходит, состоит в том, что все компьютерные функции работают одновременно, а не поочередно, один за другим.
Если кто-нибудь может помочь решить эту проблему, я был бы признателен!
Я попытался уложить их, но он все еще запускает их все сразу. Я также включил dispatch_get_main_queue в параметр dispatch_after, потому что программа не запускалась без него. – Michael