Cocos2d iphone 如何在cocos2d中创建带有卷号的分数标签?

Cocos2d iphone 如何在cocos2d中创建带有卷号的分数标签?,cocos2d-iphone,cclabelttf,Cocos2d Iphone,Cclabelttf,我正在尝试使用CCLabelTTF创建一个分数,以在屏幕上显示分数。 但我会显示分数滚动数字,直到它们到达最终分数。 我在更新方法中这样做: if(currentScore < finalScore) { currentScore ++; [labelScore setString:[NSString stringWithFormat:@"%d", currentScore]]; } if(currentScore

我正在尝试使用CCLabelTTF创建一个分数,以在屏幕上显示分数。 但我会显示分数滚动数字,直到它们到达最终分数。 我在更新方法中这样做:

    if(currentScore < finalScore)
    {
    currentScore ++;
    [labelScore setString:[NSString stringWithFormat:@"%d", currentScore]];
     }
if(currentScore
这是完美的,当我有小分数,但当我有一个大的数字,如10.000,我必须等待看到最后的分数很多。
如何解决此问题?

在更新方法中更新分数标签意味着您的标签将每秒更新60次,这对于较大的增量可能有点慢。有两种方法可以解决此问题,一种是增加增量值,即对于较大的数字,增量大于1,另一种是根据所需增量计算时间间隔来安排选择器,或者两者兼而有之。 决定您希望分数标签更新的持续时间,然后安排一个具有适当间隔的选择器,以使用户等待相同的时间量,而不考虑分数增量。 例如:-

float waitDuration = 2.0f;
float increment = finalScore - currentScore;
float interval  = 2/increment;
[self schedule:@selector(updateScoreLabel) interval:interval repeat:increment delay:0];
在哪里,

-(void) updateScoreLabel{
     [labelScore setString:[NSString stringWithFormat:@"%d", currentScore++]];
}
不要对经常更改的字符串使用CCLabelTTF。每次字符串更改时,将创建一个新的纹理,并在其上渲染字体,然后该纹理将绑定到OpenGL。这是一个缓慢的操作。您应该使用CCLabelBMFont,使用bmGlyph或Glyph设计器来创建位图字体。