cocos2d 全局调度器与节点调度器

cocos2d-lua 中的调度器分为以下两种:

1、全局调度器

cocos2d-lua框架默认不加载全局调度器模块。需要手动加载

local scheduler = require(cc.PACKAGE_NAME..".scheduler")

全局调度器模块分为三个

(1)全局帧调度器:scheduleUpdateGlobal(listener)

例:

local scheduler = require(cc.PACKAGE_NAME..".scheduler")

local function onInterval(dt)

print("update")

end

scheduler.scheduleUpdateGlobal(onInterval)

(2) 全局自定义调度器:scheduleGlobal(listener,interval)

local scheduler = require(cc.PACKAGE_NAME..".scheduler")

local function onInterval(dt)

print("Custom")

end

scheduler.scheduleGlobal(onInterval,0.5) --区别在于全局自定义调度器可以自己设置时间间隔,但必须大于1/60 s

(3)全局延时调度器:performWithDelayGlobal(listener,time)

单次的延时调用

local scheduler = require(cc.PACKAGE_NAME..".scheduler")

local function onInterval( dt )

print("once")

end

scheduler.performWithDelay(onInterval, 0.5)

2、节点调度器

(1)节点帧调度器。现已归类到节点帧事件,参考事件分发机制

(2)节点自定义调度器

  local action = node:schedule(function ()
  print("schedule")
  end,1.0)

事实上,schedule函数内部是用动作系统来实现的,所以停止节点调度器可以使用:

停止节点调度器,node:stopAction(action)

(3)节点延时调度器

    node:performWithDelay(function ()
        print("performWithDelay")
    end, 1.0)

停止的方法依然是用stopAction

你可能感兴趣的:(cocos2dx)