cocos2d-x 3.x之定时器
cocos2d-x为我们提供了两种方式来实现定时机制——使用update方法以及实用scheduleUpdate方法。 class HelloWorld : public Layer { public: virtual void update(float delta) // delta参数代表上一次调用这个函数到本次调用这个函数之间间隔多少秒 { CCLOG("update %f",delta); // this->unscheduleUpdate(); 停止update定时器 } };我们在HelloWorld层的init方法中启用定时器 bool HelloWorld::init() { if(!Layer::init()) { return false; } this->scheduleUpdate(); // 启用update定时器,每帧绘制之前都会调用update return true; }控制台下在不停的打印 update 0.028961 update 0.016667 update 0.016667 update 0.016667 update 0.016666
2.schedule定时器 class HelloWorld : public Layer { public: void myUpdate(float delta) // delta参数代表上一次调用这个函数到本次调用这个函数之间间隔多少秒 { CCLOG("myUpdate %f",delta); // this->unschedule(schedule_selector(HelloWorld::myUpdate)); 停止schedule定时器 // this->unscheduleAllSelectors(); 停止所有的定时器 } };在HelloWorld层的init方法中启用定时器 bool HelloWorld::init() { if(!Layer::init()) { return false; } // schedule_selector是一个用来把指定函数转化成函数指针的宏,用来启动一个自定义的定时器,第二个参数表示以秒为单位的时间,0代表以每帧为时间间隔,每3秒调用myUpdate方法 this->schedule(schedule_selector(HelloWorld::myUpdate),3); return true; }控制台打印结果: myUpdate 3.000514 myUpdate 3.002915 myUpdate 3.000579 myUpdate 3.000229 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |