前端之家收集整理的这篇文章主要介绍了
用cocos2dx实现一个秒表级的计时器。,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
待解决问题:如何用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);
- }
|