当前位置: 首页 > news >正文

lua中实现倒计时

今天在开发的时候,涉及到了使用倒计时来显示。

首先自己的思路是:

1、设计显示的Lable。

2、对传入的时间进行处理,转成字符串00:00:00。通过调用回调函数来控制一秒刷新一次。

转换算法:

1 h = math.floor(time / 3600),   
2 m = math.floor((time % 3600) / 60),   
3 s = math.floor((time % 3600) % 60)。  

3、设置回调函数,通过延时一秒和调用Label显示函数。

代码如下:

 1 function TimeNumLayer:__init()  
 2     Layer.__init(self)  
 3     
 4     self.start_time = 0  
 5     self.run_time = 0  
 6     
 7     self.time_label = Label.CreateWithString(" ", GlobalConfig.FontType, 10)  
 8     self:AddChild(self.time_label)  
 9     self.time_label:SetPosition(0, 0)  
10     
11     self.cd_time = self.cd_time or 0  
12     self:Start()  
13 end  
14   
15 function TimeNumLayer:Update(interval)  
16     self.run_time = self.run_time + interval  
17     local cd_time = 0  
18     
19     if self.cd_time > 0 then   
20     cd_time = self.cd_time - self.run_time  
21     end  
22     
23     if cd_time < 0 then  
24     cd_time = 0  
25     end  
26     self.time_label:SetString(LogicHandle.Get24FormatStr(cd_time))  
27 end  
28   
29 function TimeNumLayer:Start()  
30     self.start_time = game_app.game_server_time  
31     self.cd_time = game_app.pet_call_info.PerfectTime  
32     self.run_time = 0  
33 end  

 

转载于:https://www.cnblogs.com/AaronBlogs/p/7615883.html

相关文章:

  • 条款7:为多态基类声明virtual析构函数
  • Linux下rootkit后门检测工具chkrootkit
  • 人们应将公共云与私有云的辩论抛之脑后
  • 毕业两年的程序猿经验小结
  • 数据库 之 SQL语句构成和分类
  • ImageSharp .NET Core跨平台图形处理库
  • 触摸屏手指滑动方向检测
  • jQuery EasyUI快速入门实战教程(一)-入门
  • oracle业务硬盘出现故障无法访问,提示需要重新格式化后解决方法
  • 阿里云,为寄递业务探索创新升级
  • SkinSB皮肤滚动条库的一个帮助头文件
  • xmanager运行报错:bash: /usr/bin/xterm: No such file or directory
  • Android 音视频开发入门指南
  • 8.html表格相关的标记9.html表格实战《简单的网页布局》
  • 如何添加mysql到环境变量
  • 【翻译】babel对TC39装饰器草案的实现
  • Angular Elements 及其运作原理
  • JavaScript HTML DOM
  • java中的hashCode
  • k8s 面向应用开发者的基础命令
  • storm drpc实例
  • unity如何实现一个固定宽度的orthagraphic相机
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 对超线程几个不同角度的解释
  • 解析 Webpack中import、require、按需加载的执行过程
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 如何用vue打造一个移动端音乐播放器
  • 使用docker-compose进行多节点部署
  • 一天一个设计模式之JS实现——适配器模式
  • ​人工智能书单(数学基础篇)
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (6)添加vue-cookie
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (LeetCode C++)盛最多水的容器
  • (Note)C++中的继承方式
  • (动态规划)5. 最长回文子串 java解决
  • (二)pulsar安装在独立的docker中,python测试
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (四)鸿鹄云架构一服务注册中心
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)视频码率,帧率和分辨率的联系与区别
  • **CI中自动类加载的用法总结
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • ::什么意思
  • :“Failed to access IIS metabase”解决方法
  • @KafkaListener注解详解(一)| 常用参数详解
  • @RequestBody的使用