(1)self:scheduleUpdateWithPriorityLua(update, priority)
> 参一:刷新函数
> 参二:刷新优先级
其中 self 为 Node类 的子类。
该方法默认为每帧都刷新一次,无法自定义刷新时间间隔。
(2)scheduler:scheduleScriptFunc(update, inteval, false)
> 参一:刷新函数
> 参二:每次刷新的时间间隔
> 参三:是否只执行一次。false为无限次。
(3)根据时间回复体力值
function EnergyNotFullLayer:getTimeString(time)
if time == nil then
print("time is nil")
return
end
local hours = math.floor(time / 3600)
local minutes = math.floor((time % 3600) / 60)
local seconds = math.floor(time % 60)
if(hours < 10) then hours = "0"..hours end
if(minutes < 10) then minutes = "0"..minutes end
if(seconds < 10) then seconds = "0"..seconds end
local time = ""..hours..":"..minutes..":"..seconds
return time
end
function EnergyNotFullLayer:startCountDownTimes(times) --开始倒计时
EnergyNotFullLayer.countDownTimes = times
local callback = function()
EnergyNotFullLayer.countDownTimes = (EnergyNotFullLayer.countDownTimes - 1)
local time = EnergyNotFullLayer:getTimeString(EnergyNotFullLayer.countDownTimes)
if EnergyNotFullLayer.countDownTimes >= 0 then
EnergyNotFullLayer.timeLabel:setString(time)
else
--移除回调
if EnergyNotFullLayer.scheduler ~= nil then
cc.Director:getInstance():getScheduler():unscheduleScriptEntry(EnergyNotFullLayer.scheduler)
EnergyNotFullLayer.scheduler = nil
end
end
end
EnergyNotFullLayer.scheduler = cc.Director:getInstance():getScheduler():scheduleScriptFunc(callback, 0, false)
end