1. 程式人生 > >lua中實現倒計時

lua中實現倒計時

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 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

lua中實現倒計時