lua中實現倒計時
阿新 • • 發佈:2017-09-30
con blog oca end sta start conf child mat
今天在開發的時候,涉及到了使用倒計時來顯示。
首先自己的思路是:
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 25end 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
lua中實現倒計時