schedule 单线程定时器

xiaoxiao2021-02-28  118



头文件中加入 virtual void update(float dt)

bool HelloWorld::init() {        if ( !Layer::init() )     {         return false;     }   

 this->scheduleUpdate()

      return true; }

//实现update 函数,在函数里打印日志

void HelloWorld::update(float dt){

log("update");

}

this->scheduleUpdate()函数为了把当前节点(如layer) 添加到队列里,只要把节点添加到队列里,这个节点就会在游戏运行的每一帧被调用一次update函数

若要执行自定义update函数(如自定义函数为zdupdate),在init里添加一下代码

this->schedule(schedule_selector(HelloWorld::zdupdate));

若要指定输出的时间间隔,可以用

this->schedule(schedule_selector(HelloWorld::zdupdate),2.0f);

其它的schedule:

unschedule : 停止update函数

unscheduleAllSelectors :停止所有的update函数

scheduleOnce : 只执行一次update函数,this->scheduleOnce(schedule_selector(HelloWorld::zdupdate),2.0f),最后一个参数是延迟的时间

转载请注明原文地址: https://www.6miu.com/read-74301.html

最新回复(0)