I'm developing a game and I want to create a pause menu. Here is my code:
self.view?.paused = true
but NSTimer.scheduledTimerWithTimeInterval
still running...
for var i=0; i < rocketCount; i++ { var a: NSTimeInterval = 1 ii += a delaysShow = 2.0 + ((stimulus + interStimulus) * ii) var time3 = NSTimer.scheduledTimerWithTimeInterval(delaysShow!, target: self, selector: Selector("showRocket:"), userInfo: rocketid[i], repeats: false) }
I want time3
to pause the timer when player click pause menu and continue run the timer when player come back to the game, but how can I pause NSTimer.scheduledTimerWithTimeInterval
? help me please.
You need to invalidate it and recreate it. You can then use an isPaused
bool to keep track of the state if you have the same button to pause and resume the timer:
var isPaused = true var timer = NSTimer() @IBAction func pauseResume(sender: AnyObject) { if isPaused{ timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: Selector("somAction"), userInfo: nil, repeats: true) isPaused = false } else { timer.invalidate() isPaused = true } }
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.action), userInfo: nil, repeats: true)
timer.invalidate()
time += 1 label.text = String(time)
'label' is the timer on output.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With