62 lines
1.3 KiB
Plaintext
62 lines
1.3 KiB
Plaintext
TimeTick = class('TimeTick')
|
|
|
|
--玩家揹包數據管理
|
|
|
|
function TimeTick:ctor(delay,interval,func,owner,id,rawSecond)
|
|
self.isTicking = false
|
|
self.tickID = -1
|
|
self:ResetData(delay,interval,func,owner,id,rawSecond)
|
|
end
|
|
|
|
function TimeTick:ResetData( delay,interval,func,owner,id ,rawSecond)
|
|
self.func = func
|
|
self.owner = owner
|
|
self.id = id
|
|
self.delay = delay
|
|
self.interval = interval
|
|
self.rawSecond = rawSecond
|
|
end
|
|
|
|
function TimeTick:Restart()
|
|
self:ClearTick()
|
|
self:StartTick()
|
|
end
|
|
|
|
function TimeTick:StartTick()
|
|
if(not self.isTicking) then
|
|
self.isTicking = true
|
|
self.timeStamp = Time.unscaledTime
|
|
if(self.tickID==-1) then
|
|
self.tickID = LuaTimer.Add(self.delay,self.interval,function(id)
|
|
if(self.isTicking) then
|
|
local now = Time.unscaledTime
|
|
-- local interval = math.floor((now-self.timeStamp)*1000)
|
|
local interval = 0
|
|
if(self.rawSecond) then
|
|
interval = (now-self.timeStamp)
|
|
else
|
|
interval = (now-self.timeStamp)*1000
|
|
end
|
|
self.func(self.owner,interval)
|
|
self.timeStamp = now
|
|
end
|
|
end)
|
|
end
|
|
end
|
|
end
|
|
|
|
function TimeTick:StopTick()
|
|
self.isTicking = false
|
|
end
|
|
|
|
function TimeTick:ClearTick()
|
|
self.isTicking = false
|
|
if(self.tickID~=-1) then
|
|
LuaTimer.Delete(self.tickID)
|
|
self.tickID = -1
|
|
end
|
|
end
|
|
|
|
function TimeTick:Destroy()
|
|
self:ClearTick()
|
|
end |