У меня есть NSTimer() и логика AI для настольной игры. Логика ИИ занимает много времени, чтобы обработать от 3 до 5 секунд (это нормально). Когда программа выполняет логику ИИ, NSTimer не срабатывает, пока логика AI не завершит ее выполнение.Как запустить таймер и логику AI в Swift одновременно
Так я начал таймер на начальном этапе игры.
public var timer = NSTimer()
...
let timeSelector:Selector = "timerFired"
if self.useTime {
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: timeSelector, userInfo: nil, repeats: true)
}
Я добавил логику AI в Обновление с SKScene так, что, когда он обнаруживает, что его очередь, он начнет проверку доступных ходов
override func update(currentTime: CFTimeInterval) {
if gameStatus.playerTurn == "AI" && !aiThiking {
aiThiking = true
aIPlayer.aiCheckAvaialbleMoves()
// executeMove
// change Turn
aiThiking = false
}
Вопрос в том, можно ли запустить логику AI и позволить таймеру работать одновременно?
спасибо. Я буду рассматривать многопоточность. Я новичок в быстроте. Поэтому я не знаю, как это работает. Мне нужно проверить, завершен ли этот процесс и/или остановить поток и запустить новый. Это возможно? если да, я попытаюсь найти источники многопоточности в Swift. –
Повторите мой ответ, я думаю, это поможет вам лучше;) – aramusss
хорошо! Спасибо большое. похоже, работает. как и ожидалось, мой кодекс аварии и ведут себя ненормально, но это нормально. я уверен, что можно выяснить, как их настроить. по крайней мере, мои проблемы синхронизации решены. –