我正在尝试在cocos2d游戏中显示一个计时器,它显示分钟数:秒:用户在某个级别上花费的毫秒数。我搜索了一些例子,发现我绝对不应该使用NSTimer。我知道我应该使用CCTimer类,但我很难找到合适的例子。
答案 0 :(得分:6)
//Declare this in interface
CCLabelTTF *mTimeLbl;
float mTimeInSec;
//在onEnter
中初始化 mTimeInSec = 0.0f;
[self schedule:@selector(tick:)];
//使用的功能
-(void)tick:(ccTime)dt
{
if(self.isGamePaused || self.isGameOver)
return;
mTimeInSec +=dt;
float digit_min = mTimeInSec/60.0f;
float digit_hour = (digit_min)/60.0f;
float digit_sec = ((int)mTimeInSec%60);
int min = (int)digit_min;
int hours = (int)digit_hour;
int sec = (int)digit_sec;
[mTimeLbl setString:[NSString stringWithFormat:@"%.2d:%.2d:%.2d",hours, min,sec]];
}
答案 1 :(得分:0)
在CCLayer
类中,只需创建一个保存数据的变量,并通过计时器或正常更新将其递增。我给你一些示例代码,但它只是给你一个想法:
static long ticks = 0;
-(void)timerTick
{
++ticks;
[(CCLabelBMFont*)[self getChildByTag:TAG_TIMER_STRING] setString:[NSString stringWithFormat:@"%lu"]];
}
-(id)init {
..
[self schedule:@selector(timerTick) interval:1.0];
}