待解决问题:如何用cocos2dx实现一个毫秒级的计时器效果?
是否将毫秒部分做成动画就可?选取大概30个数做成帧动画? 求一个成熟的解决方案。
先看下我实现秒级计时器的方法,抛砖引玉。
复制代码
-
问题:如何用cocos2dx实现一个毫秒级的计时器效果? 是否将毫秒部分做成动画就可?选取大概30个数做成帧动画? 求一个成熟的解决方案。
-
-
-
先看下我实现秒级计时器的方法,抛砖引玉。
-
-
-
-
复制代码
-
// 在要实现位置,用schedule方法 调用计时器
-
this->schedule(schedule_selector(HelloWorld::TimeCounter),1.0f);
-
//计时函数
-
void HelloWorld::TimeCounter(float dt)
-
{
-
//计数开始,转化成秒 分钟 小时
-
nSecond++;
-
if (nSecond==60) {
-
nSecond = 0;
-
nMinute++;
-
if (nMinute == 60) {
-
nMinute = 0;
-
nHour++;
-
if (nHour==24) {
-
nHour = 0;
-
}
-
}
-
}
-
//用CCLabelAtlas 方法输出
-
//删除上次的显示,清画布
-
removeChildByTag(STag);
-
//将秒数 整形数转换成ascII码
-
str[0]=48+(nSecond/10);str[1]=48+(nSecond%10);str[2]='\0';
-
CCLabelAtlas* labelatlas = CCLabelAtlas::create(str, "numbers.png", 12, 32, 46);
-
labelatlas->setPosition(ccp(300, 100));
-
addChild(labelatlas);
-
//labelatlas->setScale(2.0f);
-
labelatlas->setTag(STag);
-
CCLog("%d -- %d -- %d",nHour,nMinute,nSecond);
-
CCLog("%d -- %d",nSecond/10,nSecond%10);
-
}
|