我正在尝试在 cocos2d 游戏中显示一个计时器,该计时器显示用户在关卡上花费的分钟数:秒数:毫秒数。我搜索了示例,发现我绝对不应该使用 NSTimer。我知道我应该使用 CCTimer 类,但我很难找到像样的例子。
问问题
1628 次
2 回答
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]];
}
于 2013-05-21T04:11:32.647 回答
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];
}
于 2013-05-21T04:10:47.370 回答