quick3.3计时器scheduleUpdate的使用--学习总结

游戏中经常用到的计时器处理一些事情,如碰撞检测,学习过程,记录使用方法,以免遗忘

1.自定义计时器

在想要使用计时器的文件开始位置写上
local scheduler = require(cc.PACKAGE_NAME…".scheduler") --我的理解是这个计时器类是封装在scheduler文件中的,需要获取一下才能使用,PACKAGE_NAME这个是framework文件夹的别名

local time = 0
    local ff = function()
        time = time+1
        print(time)
    end
    local stopFF = function()
        scheduler.unscheduleGlobal(self.handler_my)  --停止计时器,通过开启计时器时返回的句柄,即:self.handler_my
  end
scheduler.performWithDelayGlobal(stopFF,4.0)  --这个是全局只运行一次的计时器,第二个参数是延迟执行时间,即在进入这个场景4.0妙后执行stopFF()这个方法
self.handler_my = scheduler.scheduleGlobal(ff, 1.0)  --开启自定义的计时器,第二个参数是频率,即进入场景后每间隔1秒执行一遍 ff() 方法,将返回的句柄赋给self.handler_my,以便停止计时器的时候使用

```


2.结点帧事件(感觉和计时器差不多,就是每一次刷新屏幕前(也就是前一帧和下一帧之间)都会触发事件,这个不必require("scheduler"))

self:scheduleUpdate()  --开启帧事件
self:addNodeEventListener(cc.NODE_ENTER_FRAME_EVENT, function(dt)  --注意这个枚举需要是cc.NODE_ENTER_FRAME_EVENT,dt没有深入了解其内容
    print(dt)
end)
self:performWithDelay(function(  )  --1.0表示延迟执行function的时间
    --self:unscheduleUpdate()
    self:removeNodeEventListenersByEvent(cc.NODE_ENTER_FRAME_EVENT)  --结束帧事件,里面的封装有对self:unscheduleUpdate()方法的判断
end, 1.0)

```

:2: :2: :2: :2: :2:

node:performWithDelay(function()
– 等待 1.5 秒后执行代码
node:runAction(…)
end, 1.5)

这个计时其实最好用,不会被全局影响