Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 重用Cocos2d CocosNodes_Iphone_Cocoa_Cocoa Touch_Cocos2d Iphone - Fatal编程技术网

Iphone 重用Cocos2d CocosNodes

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

我试图在我的iPhone游戏中创建一个很酷的分数计数器,我在photoshop中创建了数字0到9,我想每秒更新一次分数

我现在做的是:

  • 在我的初始化中,我将所有数字精灵加载到一个数组中,这样该数组就有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;
}
-(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类以支持字符填充。稍后我将提供一个补丁。