【quick-cocos2d-lua】 调度器

①全局调度器:

在游戏里,需要周期性的处理事务,并且这些事务不会因为某个节点的销毁而取消。例如:刷新全局变量。

 

--加入定时器

callbackEntry = cc.Director:getInstance():getScheduler():scheduleScriptFunc(callback, 3, false)  

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

callback: 回调函数,Scheduler会传递给回调函数一个参数dt,表示距离上次回调所经过的时间

delay:每次调用回调函数的时间间隔

pause: 是否停住,一般设为false就行,否则定时器停住不执行

例:

callbackEntry=cc.Director:getInstance():getScheduler():scheduleScriptFunc(handler(self,self.update), 0.1, false)

function MainScene:update(dt)

    if self.state == state.playing then

        self:checkCollision()

        self:removeInactiveUnit(dt)

        self:checkReBorn()

        self:updateUI()

        self:moveBackground(dt)

    end

end

 

--删除定时器

cc.Director:getInstance():getScheduler():unscheduleScriptEntry(callbackEntry)

例:

function MainScene:removeEnemyScheduler()

    cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.enemyCallbackEntry)

end

 

②节点调度器:

这类定时器是和Node相关的,因此当Node被移除出场景或者其他情况下,这类回调定时器将会被取消。

 

--循环节点调度器

schedule(node,callback,delay)

schedule(self,function()  
        print("Hello")  
end,5)

--一次性回调定时器

performWithDelay(node,callback,delay)

performWithDelay(self,function()  
        print("Hello")  
end,5)

 

你可能感兴趣的:(【quick-cocos2d-lua】 调度器)