2012-06-30 108 views
2

我有一個CADisplayLink作爲我的遊戲主遊戲循環,以及每隔10秒產生一個敵人的NSTimer。我用...NSTimer和CADisplayLink衝突

-(void)togglePause{ 
displayLink.paused = !displayLink.paused; 
if (displayLink.paused) { 
    [self.view addSubview:pauseOverlay]; 
}else { 
    [pauseOverlay removeFromSuperview]; 
} 

...暫停gameloop,但滋生的敵人定時器將繼續下去甚至在比賽暫停時,如果我破壞了計時器,然後再拍一個不能p只是利用暫停按鈕,並在10秒鐘之前將其擊中,導致敵人永遠不會產卵? 有沒有一個簡單的解決方案呢?

+0

那麼你必須檢查displayLink.paused是否爲true。請提供更多代碼。 – Simon

+0

我現在展示了完整的方法,我不明白爲什麼這很重要,但 – anonamousUsername

回答

3

溝渠NSTimer,只是使用計數器,每次CADisplayLink觸發時增加。一旦到達ñ產卵你的敵人和零櫃檯。如果用戶暫停,當他們恢復計數器時將與原來一樣。

+0

謝謝!這很好用! – anonamousUsername