我正在尝试使用CCLabelTTF创建一个分数,以在屏幕上显示分数。 但我会显示得分滚动数字,直到他们到达最终得分。 我在更新方法中做到了这一点:
if(currentScore < finalScore)
{
currentScore ++;
[labelScore setString:[NSString stringWithFormat:@"%d", currentScore]];
}
当我得分很小时,这是完美的,但当我有一个像10.000这样的大数字时,我必须等待很多才能看到最终得分。 我该如何解决这个问题?
答案 0 :(得分: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++]];
}