2012-02-16 30 views
0

我試圖讓我的比賽一個計時器,從數倒計時添加視覺方面的安排,讓我們稱之爲100我下面的cocos2d的最佳實踐,因此,我不使用的NSTimer 。我期望做的是每秒鐘,我想這個計時器的數字改變。我可能會找到一種方法來使用spritesheet和100-0的所有數字,但我知道有一種方法可以使用數字0-9和他們的圖片來完成。在cocos2d

這是我使用的,與相應的代碼 - (無效)

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

所有的一切,我想知道如何使它數從100下來,但也知道如何使這些刻度每秒鐘減少1個值。

+0

檢查出更新的幀率計數器 – LearnCocos2D 2012-02-16 23:27:34

回答

2

初始化一個整型變量,將讓你的倒計時值:

int count = 100; 

你會希望保持一個標籤(CCLabelBMFont等),以顯示該計數值。我建議字形設計(或耶羅,如果你想免費的東西)來生成0到9 cocos2D上兼容的字體位圖,然後你就可以在你的CCLabelBMFont使用:

CCLabelBMFont* countLabel = [CCLabelBMFont labelWithString:@"0" fntFile:@"myFont.fnt"]; 

下,安排一個滴答中的功能,將每秒觸發一次:

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

這個滴答函數每次調用count時減1。此外,添加的條件是,如果計數已經達到0,它將取消預定本身:

-void tick:(ccTime) dt 
{ 
    count --; // decrement count by 1 each time this function is called 
    if (count == 0) 
     [self unschedule: @selector(tick:)];  
} 

最後,在你的主更新循環(或者甚至在蜱功能本身,你遞減的計數後),您可以更新並且每次用最新值重新標記該標籤:

[countLabel setString:[NSString stringWithFormat:@"%i", count]]; 

一切順利。

+0

的CCDirector代碼,所以我拖動到我的資源文件夾是.FNT和巴紐? – akuritsu 2012-02-18 00:40:22

+0

是的,你可以把那些放在那裏。 – 2012-02-18 08:29:55