標籤:
在遊戲開發中,很多時候會用到一定時間內自動幹嘛的效果,比如每隔一秒自動增加一個元素。很顯然,我就用到了。object-c中的NSTimer就能實現這種效果。
1.定義NSTimer
@property(nonatomic)NSTimer *MouseTimer;//計時器
--------------------------------------------------------------------------------------------------------------
2.初始化,同時指定它幹什麼
_MouseTimer=[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(MouseMove) userInfo:nil repeats:YES];
只要運行到這一句,他就開始周而復始的執行動作,知道我們讓它停下來,下面是參數的大概解釋:
scheduledTimerWithTimeInterval,指定每隔多久執行一次動作;
target,指定此計時器的結果反應給誰,指定目標;
selector,指定計時器每次執行的動作,這裡MouseMove是我自己寫的一個函數;
userInfo,傳輸發送的東西,發送的參數;
repeats,設定定時器是否重複調用目標方法,即MouseMove。
--------------------------------------------------------------------------------------------------------------
3.關閉定時器
在想讓他停止時比如遊戲結束,離開遊戲介面的時候,就需要停止或關閉定時器。
停止:(ps:這就是為啥我把它定位全域變數了,因為在這個頁面的任何地方都可以操作它)
[_MouseTimer setFireDate:[NSDate distantFuture]];
繼續:
[_MouseTimer setFireDate:[NSDate date]];
關閉:(ps:invalidate只是很單純的關閉了定時器,並沒有釋放資源。所以我們要自己釋放資源。)
[_MouseTimer invalidate];//關閉計時器_MouseTimer = nil;//釋放資源
如此這般,就可以很好地控制遊戲過程中的某些效果了。
ios開發之oc-NSTimer計時器簡單使用