如何在Cocos2d游戏中显示计时器?

时间:2013-05-21 04:06:16

标签: cocos2d-iphone

我正在尝试在cocos2d游戏中显示一个计时器,它显示分钟数:秒:用户在某个级别上花费的毫秒数。我搜索了一些例子,发现我绝对不应该使用NSTimer。我知道我应该使用CCTimer类,但我很难找到合适的例子。

2 个答案:

答案 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];
}