Iphone 重用Cocos2d CocosNodes
我试图在我的iPhone游戏中创建一个很酷的分数计数器,我在photoshop中创建了数字0到9,我想每秒更新一次分数 我现在做的是:Iphone 重用Cocos2d CocosNodes,iphone,cocoa,cocoa-touch,cocos2d-iphone,Iphone,Cocoa,Cocoa Touch,Cocos2d Iphone,我试图在我的iPhone游戏中创建一个很酷的分数计数器,我在photoshop中创建了数字0到9,我想每秒更新一次分数 我现在做的是: 在我的初始化中,我将所有数字精灵加载到一个数组中,这样该数组就有10个项目 我创建了一个方法,将当前分数(如2000)分解为单个数字,从数组中获取精灵,然后将它们添加到父CocosNode*对象中 每秒钟,我都会通过父CocosNode的标记获取它,并用新的父对象替换它 目前我已经遇到了这个问题,因为分数2000使用了三次0位数,我不能重复使用精灵 - (C
- 在我的初始化中,我将所有数字精灵加载到一个数组中,这样该数组就有10个项目
- 我创建了一个方法,将当前分数(如2000)分解为单个数字,从数组中获取精灵,然后将它们添加到父CocosNode*对象中
- 每秒钟,我都会通过父CocosNode的标记获取它,并用新的父对象替换它
- (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;
}
-(CocosNode*)createScoreString:(int)分数
{
NSLog(@“创建分数字符串:%d”,分数);
NSString*scoreString=[NSString stringWithFormat:@“%d”,分数];
int-xAxes=0;
CocosNode*parentNode=[[Sprite alloc]init];
对于(NSInteger index=0;index<[scoreString长度];index++)
{
NSRange范围;
range.length=1;
range.location=索引;
NSString*数字=[scoreString substringWithRange:range];
Sprite*digitSpriteOriginal=[self.digitArray objectAtIndex:[digit intValue]];
Sprite*digitSprite=[digitSpriteOriginal copy];
[digitSprite设置位置:cpv(xAxes,0)];
xAxes+=[digitSprite contentSize]。宽度-10;
[parentNode addChild:digitSprite];
}
返回父节点;
}
我是在cocos2d中正确地处理这个问题,还是有一些标准的功能?此外,如果这是正确的,我如何“重用”精灵?我相信您想要使用,您只需要提供一个兼容的位图(如fps计数器使用的位图)。非常感谢!经过一番探索,我找到了这个解决方案。我甚至修改了Labelalas类以支持字符填充。稍后我将提供一个补丁。