我正在尝试在我的 iPhone 游戏中创建一个很酷的分数计数器,我在 Photoshop 中创建了数字 0 到 9,并且我想每秒更新分数。
我现在正在做的事情如下:
在我的初始化中,我将所有数字精灵加载到一个数组中,以便该数组有 10 个项目。
我创建了一个方法,它将当前分数(例如 2000)分解为单个数字并从数组中获取精灵,然后将它们添加到父 CocosNode* 对象中。
每秒钟我都会通过它的标签获取父 CocosNode 并将其替换为新的父对象。
目前我已经遇到了这个问题,因为分数 2000 使用了 3 次 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 中以正确的方式处理这个问题,还是有一些标准功能?另外,如果这是正确的,我怎样才能“重用”精灵?