多线程做定时器
标题大雾其实没讲多线程
(cocos2d-X 游戏开发之旅第八章 阅读笔记)
cocos2d-X 中 schedule 的各种使用
我觉得讲的是这个
HelloWorld.cpp 中的init 函数重写
bool@H_404_20@ HelloWorld::init(){
bool@H_404_20@ bRet = false@H_404_20@; //这句话不知道有什么用。。@H_404_20@
do@H_404_20@{
this@H_404_20@->scheduleUpdate();
bRet = true@H_404_20@;
}while@H_404_20@(0@H_404_20@);//执行一次@H_404_20@
return@H_404_20@ bRet;
}
HelloWorld.h
class HelloWorld:public@H_404_20@ cocos2d::CCLayer{
public@H_404_20@:
virtual@H_404_20@ bool@H_404_20@ init@H_404_20@();
static@H_404_20@ cocos2d::CCScene* scene();
void@H_404_20@ menuCloseCallback(CCObject* pSender);
CREATE_FUNC(HelloWorld);
/*重写update函数*/@H_404_20@
virtual@H_404_20@ void@H_404_20@ update(float@H_404_20@ dt);
};
然后重写update函数
void HelloWorld::update@H_404_20@(float@H_404_20@ dt){ CCLOG("update"@H_404_20@);@H_404_20@//调试窗口会显示update@H_404_20@ }@H_404_20@
自己写一个update函数
void@H_404_20@ HelloWorld::myUpdate(float@H_404_20@ mydt){
CCLOG("%f"@H_404_20@,mydt);
}
this->schedule(schedule_selector(HelloWorld::myUpdate)@H_404_20@,1.0@H_404_20@f)@H_404_20@;
//指定每帧执行自定义的函数,指定每隔1秒执行一次@H_404_20@
在函数定义最后加一条语句
this->unschedule(schedule_selector(HelloWorld::mydate)@H_404_20@)@H_404_20@;
//这样就可以停止调用函数@H_404_20@
scheduleOnce
this->scheduleOnce(schedule_selector(HelloWorld::mydate)@H_404_20@,3.0@H_404_20@f)@H_404_20@;
/*第一个参数还是定时器,第二个参数是多长时间后执行定时器且只执行一次(Once直白。。)*/@H_404_20@
观察者模式
每章的标题真的是误人子弟啊