用cocos2dx实现一个秒表级的计时器。

前端之家收集整理的这篇文章主要介绍了用cocos2dx实现一个秒表级的计时器。前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


解决问题:如何用cocos2dx实现一个毫秒级的计时器效果? 是否将毫秒部分做成动画就可?选取大概30个数做成帧动画? 求一个成熟的解决方案。


先看下我实现秒级计时器的方法,抛砖引玉。


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

猜你在找的Cocos2d-x相关文章