定时器scheduler
颛孙昆
2023-12-01
--自定义定时器
local function updateLeftTime(f)
--实现内容
end
local schedule_updateLeftTime = nil
local scheduler = cc.Director:getInstance():getScheduler() --
schedule_updateLeftTime = scheduler:scheduleScriptFunc(updateLeftTime, 1.0, false) --时间调度器
local function onNodeEvent(event) --退出事件停止调用定时器
--有五个状态 enter、enterTransitionFinish、exit、exitTransitionStart、cleanup
if event == "exitTransitionStart" then
if schedule_updateLeftTime then
scheduler:unscheduleScriptEntry(schedule_updateLeftTime)
schedule_updateLeftTime = nil
end
end
end
--创建退出时候监听 某个节点退出
node:registerScriptHandler(onNodeEvent)
updateLeftTime(0)
--默认定时器
local function update(delta)
local x,y = label:getPosition()
label:setPosition(cc.p(x + 2, y - 2))
end
--开始游戏调度
layer:scheduleUpdateWithPriorityLua(update, 0)
function onNodeEvent(tag)
if tag == "exit" then
--开始游戏调度
layer:unscheduleUpdate()
end
end
layer:registerScriptHandler(onNodeEvent)