
22
|
第
1
章
1.7
用定时器进行游戏的刷新
问题
我们想以固定的时钟周期来刷新游戏画面。
解决方案
NSTimer
能够以固定的时间间隔调用指定方法,或者在某个确定的时刻接受调用。
首先,在
View Controller
中声明一个实例变量:
var timer : NSTimer?
然后,定义一个方法,用作传递给
NSTimer
方法的参数:
@objc
func updateWithTimer(timer: Timer) {
//
闹钟响了,刷新游戏吧!
print("Timer went off!")
}
最后,启动定时器:
//
启动定时器
self.timer = Timer.scheduledTimer (timerInterval
:
0.5,
target: self,
selector: #selector(ViewController.updateWithTimer(timer:)),
userInfo: nil,
repeats: true)
停止定时器:
//
停止定时器
self.timer?.invalidate()
self.timer = nil
讨论
一个定时器启动后,会等待若干秒然后调用一次指定对象的指定方法。通过
timeInterval
参数,你可以改变定时器的这个等待时间。