Cocos2d-x Lua 定时器(Scheduler)

在引擎根目录/cocos/scripting/lua-bindings/manuallua_cocos2dx_manual.cpp文件中定义了scheduleScriptFuncunscheduleScriptEntry两个函数,分别用来初始化和删除定时器

初始化定时器

self.callback_entry = self.callback_entry or 0;
if self.callback_entry == 0 then
    self.callback_entry = cc.Director:getInstance():getScheduler():scheduleScriptFunc(handler(self, self.update),1/60.0,false)
end

function ClassName:update(dt)
    print("输出callback")
end

其中scheduleScriptFunc的三个参数分别是:

callback回调函数,设定的时间 调用的函数(比如每隔一秒刷新一次时间,或者一秒后结束调度)
delay每次调用回调函数的时间间隔
pause是否暂停,一般设为false就行,否则定时器停住不执行

删除定时器

self.callback_entry = self.callback_entry or 0;
if self.callback_entry > 0 then
    cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.callback_entry)
    self.callback_entry = 0
end

scheduleScriptFunc的返回值是一个定时器凭据,该凭据用于在需要删除对应的定时器时传入作为参数,删除定时器的方法是unscheduleScriptEntry()

你可能感兴趣的:(Cocos2d-x Lua 定时器(Scheduler))