2010-08-01 97 views
5

我正在開發一個使用cocos2d和box2d的iPhone應用程序。在這個應用程序中,我需要設置一個計時器。 計時器將顯示玩家到達目的地的剩餘時間...cocos2d:如何設置一個計時器

我該怎麼做.....我畫了一個場景,但沒有把握,因爲我是初學者如何添加計時器。

謝謝

回答

6

您可以使用CCTimer。 就像這樣:

float delay = 1.0; // Number of seconds between each call of myTimedMethod: 
CCTimer *myTimer = [[CCTimer alloc] initWithTarget:self 
          selector:@selector(myTimedMethod:) interval:delay]]; 

的方法myTimedMethod:將被調用,然後每一秒。

+0

CCTimer與'NSTimer'相比有什麼優勢? – 2010-08-02 20:10:49

+0

它使用cocos2d的內部調度機制。如果我理解正確,則取決於使用哪種CCDirector類型。在這種情況下,pro和con的(如果有的話)可能大多不相關。 – LearnCocos2D 2010-08-03 11:16:00

+8

我認爲,一個很大的好處是,這個計時器在遊戲暫停時暫停。 – 2011-07-04 16:29:13

18

我只是安排一個間隔選擇器。這適用於所有基於CCNode的類。

預約選擇每秒觸發一次:

[self schedule:@selector(timerUpdate:) interval:1]; 

,此方法被每秒調用一次:

-(void) timerUpdate:(ccTime)delta 
{ 
    numSeconds++; 
    // update timer here, using numSeconds 
} 

使用CCTimer Parceval的方法也沒關係,但你應該更喜歡靜態自動釋放初始化像這個:

CCTimer *myTimer = [CCTimer timerWithTarget:self 
            selector:@selector(myTimedMethod:) 
            interval:delay]]; 
+0

此方法在v2.x中給出問題。什麼是替代這個。儘管頭文件包含方法,但Xcode發生錯誤。 – 2014-08-04 10:53:17

+0

同樣在這裏。沒有timerWithTarget或initWithTarget方法(iOS 7.1,Xcode 5.1.1)。 – 2014-08-12 14:45:03