Поместите свойство таймера и булевский флаг в свой класс.
var timer: NSTimer?
var timerIsRunning = false
В чеке touchesBegan
метод, если таймер работает. Если это так, просто вернитесь из метода.
Если нет, установите значение timerIsRunning
в значение true и запустите таймер с интервалом 0,5 секунды. Установите действие таймера на метод, который просто устанавливает timerIsRunning
в значение false и делает недействительным таймер.
func touchesBegan(..) {
if self.timerIsRunning {
return
}
// your touchesBegan code here
let action = SKAction.rotateByAngle(CGFloat(M_PI), duration:0.5)
myObstacle.runAction(action, withKey:"action")
// start the timer
self.timerIsRunning = true
self.timer = NSTimer.scheduledTimerWithTimeInterval(0.5, target: self, selector: Selector("timeUpdate:"), userInfo: nil, repeats: false)
}
func timerUpdate() {
self.timer?.invalidate()
self.timerIsRunning = false
}
Thanks Zisoft !! – Debacle