2009-04-12 20 views
1

我想在我的iPhone遊戲中創建一個很酷的分數計數器,我在Photoshop中創建數字0到9,並且我想每秒更新分數。重用Cocos2d CocosNodes

我現在正在做的是以下幾點:

  • 在我初始化我所有的數字精靈加載到一個數組,所以數組有10個項目。

  • 我創建了一個方法,將當前得分(例如2000)分解爲單個數字並從數組中獲取精靈,然後將它們添加到父CocosNode *對象中。

  • 每一秒我都會通過它的標記獲取父CocosNode,並用新的父對象替換它。

目前我已經遇到了這個問題,因爲得分2000使用三位0位,我不能重新使用精靈。

- (CocosNode*) createScoreString:(int) score 
{ 
    NSLog(@"Creating score string : %d", score); 
    NSString* scoreString = [NSString stringWithFormat:@"%d", score]; 

    int xAxes = 0; 
    CocosNode* parentNode = [[Sprite alloc] init]; 
    for (NSInteger index = 0; index < [scoreString length]; index++) 
    { 
     NSRange range; 
     range.length = 1; 
     range.location = index; 

     NSString* digit = [scoreString substringWithRange:range]; 

     Sprite* digitSpriteOriginal = [self.digitArray objectAtIndex:[digit intValue]]; 
     Sprite* digitSprite = [digitSpriteOriginal copy]; 
     [digitSprite setPosition:cpv(xAxes, 0)]; 

     xAxes += [digitSprite contentSize].width - 10; 

     [parentNode addChild:digitSprite]; 
    } 
    return parentNode; 
} 

我在cocos2d內處理這個問題還是有一些標準的功能嗎?另外,如果這是正確的,我怎樣才能'重用'精靈?

回答

2

我相信你想使用LabelAtlas class,你只需要提供一個兼容的位圖(就像fps計數器使用的那樣)。

+0

非常感謝!經過一番搜索,我遇到了這個解決方案。我甚至修改了LabelAtlas類來支持字符的填充。稍後我會提供補丁。 – 2009-04-12 17:35:40