cocos2d-js 倒计时功能。

前端之家收集整理的这篇文章主要介绍了cocos2d-js 倒计时功能。前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

策划想做一个倒计时功能例如:05:00

首先我们先做写一个 倒计时的类。

  1. /** * Created by zhao_et on 16/11/28. * 时间控制器 */ var CountDownTimeControl = cc.Class.extend({
  2.  
  3. m_updateTime: 1,// 每次的更新时间 m_allTime: 10,// 整体执行时间 m_frameCallBack: null,// 每帧回调 m_overCallBack: null,// 整体执行完毕回调 ctor: function (updateTime,allTime,frameCallBack,overCallBack) {
  4. this.init(updateTime,overCallBack);
  5. },init: function (updateTime,overCallBack) {
  6. this.m_updateTime = updateTime || 1;
  7. this.m_allTime = allTime || 10;
  8. this.m_frameCallBack = frameCallBack || null;
  9. this.m_overCallBack = overCallBack || null;
  10. },// 设置每次更新时间 setUpdateTime: function (time) {
  11. this.m_updateTime = time;
  12. },// 设置总体执行时间 setAllTime: function (time) {
  13. this.m_allTime = time;
  14. },// 设置每帧回调 setFrameCallBack: function (callBack) {
  15. this.m_frameCallBack = callBack;
  16. },// 设置整体执行完毕回调 setOverCallBack: function (callBack) {
  17. this.m_overCallBack = callBack;
  18. },// 开启倒计时 startCountDownTime: function () {
  19. cc.director.getScheduler().schedule(this,this.updateCountDownTime,this.m_updateTime,cc.REPEAT_FOREVER,0,false,"keyCountDownTime");
  20. },// 每帧更新 updateCountDownTime: function () {
  21. this.m_allTime -= this.m_updateTime;
  22. if(this.m_frameCallBack) this.m_frameCallBack(this.m_allTime);
  23.  
  24. if(this.m_allTime == 0 && this.m_overCallBack) {
  25. this.stopUpdateCountDownTime();
  26. this.m_overCallBack();
  27. }
  28. },// 停止倒计时 stopUpdateCountDownTime: function () {
  29. cc.director.getScheduler().unschedule(this,this.updateCountDownTime);
  30. },// 清空 cleanUp: function ( ) {
  31. this.stopUpdateCountDownTime();
  32. this.m_updateTime = null;
  33. this.m_allTime = null;
  34. this.m_frameCallBack = null;
  35. this.m_overCallBack = null;
  36. }
  37. });

在有了倒计时之后我们 转换赋值。

  1. // 战斗中倒计时功能 initBattleCoundDownLabel: function () {
  2. var _self = this;
  3. var battleTime = UserInfoManager.getInstance().getBattleTime() / 1000;
  4.  
  1. var frameCallBack = function (allTime) {
  2. _self.setTimeStringBySecond(allTime);
  3. cc.log("alltime: " + allTime);
  4. };
  5.  
  6. var overCallBack = function () {
  7. cc.log("overCallBack: ");
  8. };
  9.  
  10. this.m_battleTimeCountDownTime.setUpdateTime(1); // 倒计时更新时间
  11. this.m_battleTimeCountDownTime.setAllTime(battleTime); // 倒计时总时间
  12. this.m_battleTimeCountDownTime.setFrameCallBack(frameCallBack); // 倒计时帧回调
  13. this.m_battleTimeCountDownTime.setOverCallBack(overCallBack); // 倒计时结束回调
  14. this.m_battleTimeCountDownTime.startCountDownTime();
  15.  
  16. this.setTimeStringBySecond(battleTime);
  17. },// 通过描述获取时间 setTimeStringBySecond: function (second) {
  18. var minute = 0 | (second / 60);
  19. var second = parseInt(second % 60); // 防止出现小数
  20. minute = minute > 9 ? minute : "0" + minute;
  21. second = second > 9 ? second : "0" + second;
  22.  
  23. var timeStr = minute + ":" + second;
  24. this["m_battleTime"].setString(timeStr);
  25. },

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