2014-09-12 5 views
0

나는 화면에 점수를 보여주기 위해 CCLabelTTF를 사용하여 점수를 만들려고 해요. 그들이 최종 점수에 도달 할 때까지 하지만 점수 스크롤 번호를 표시합니다. 나는 업데이트 방법이합니다 나는 작은 점수를하지만 난 10.000 같은 큰 숫자가있을 때 내가 최종 점수를보고하기위한 많은 기다려야 할 때 완벽cocos2d에서 롤 번호가있는 점수 레이블을 만드는 방법은 무엇입니까?

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

. 어떻게 해결할 수 있습니까? 업데이트 방법에서 점수 라벨을 업데이트

+0

수행 *하지 * 자주 변경 문자열에 대한 CCLabelTTF를 사용합니다. 문자열이 바뀔 때마다 새로운 텍스처가 만들어지고 글꼴이 그 위에 렌더링 된 다음 텍스처가 OpenGL에 바인딩됩니다. 이것은 ** 느린 ** 작업입니다. CCLabelBMFont를 사용하고 bmGlyph 또는 Glyph Designer를 사용하여 비트 맵 글꼴을 만들어야합니다. – LearnCocos2D

답변

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++]]; 
}