定时器用的地方还是比较多的,游戏中的逻辑判断很多都是采用每帧执行。quick对于schedule的封装在scheduler这个lua文件中。如果是第一次接触quick的话,可能按照官方的api来写一个定时器被报错,提示schedule是一个nil值,这是因为其他的模块在初始化时都是被加载的,唯独这个scheduler没有载入,所以在使用的时候,第一件事是引入这个模块,
- localscheduler=require("framework.scheduler")
剩下的就可以看着api来写了,在写quick的定时器之前还是再复习一下cocos2dx原生lua对于定时器的写法。
每帧调用的,
void scheduleUpdateWithPriority(int priority)@H_301_38@ @H_301_38@ void scheduleUpdateWithPriorityLua (int nHandler,int priority)@H_301_38@
@H_301_38@
指定调用间隔时间的,
unsigned int scheduleScriptFunc(unsigned int nHandler,float fInterval,bool bPaused)@H_301_38@
@H_301_38@
还有取消定时器事件
void unscheduleScriptEntry (unsigned int uScheduleScriptEntryID)@H_301_38@
@H_301_38@
quick的scheduler主要是对后面两个函数的封装。在c++的cocos使用中,我们使用定时器,无非就是每帧调用,间隔时间调用无数次,间隔时间调用指定次数,间隔时间调用一次,取消调用这几个。
我们依次来看下,
每帧调用,