2016-06-27 30 views
0

我正在研究一個圖像變化率隨時間變化的遊戲。起初圖像每兩秒鐘更換一次,然後會加快。如何在swift中更新計時器間隔?

var change = 2.0 

func setupGame(){ 
    change = 2.0 

    changeImage() 
} 

func changeImage(){ 
    timer = NSTimer.scheduledTimerWithTimeInterval(change, target: self, selector: #selector(SecondViewController.changeColors), userInfo: nil, repeats: true) 

    change -= 0.1 
} 

問題是,它加快了太多,它不停止。最終變化值變爲負值。

任何方式使這項工作?

回答

4

你忘了兩件事。

  • 首先,您每次定時器觸發時都會創建一個新的重複定時器。在創建新計時器之前,您需要使用invalidate舊計時器。而且既然你打算更換計時器,你可以做而不是希望這是一個重複計時器;你需要說false而不是true。第二,如果你不想讓change繼續變小,你需要某種條件來檢查change變得多小,如果你不想變得更快,不要減少它。