0

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

    if(currentScore < finalScore)
    {
    currentScore ++;
    [labelScore setString:[NSString stringWithFormat:@"%d", currentScore]];
     }

当我的分数很小时,这是完美的,但是当我有一个像 10.000 这样的大数字时,我必须等待很长时间才能看到最终分数。我该如何解决这个问题?

4

1 回答 1

0

在更新方法中更新分数标签意味着您的标签将每秒更新 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++]];
}
于 2014-09-12T22:17:10.830 回答