cocos2d-X 中 schedule 的各种使用

前端之家收集整理的这篇文章主要介绍了cocos2d-X 中 schedule 的各种使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

多线程做定时器

标题大雾其实没讲多线程

(cocos2d-X 游戏开发之旅第八章 阅读笔记)


cocos2d-X 中 schedule 的各种使用

我觉得讲的是这个

HelloWorld.cpp 中的init 函数重写

bool HelloWorld::init(){
    bool bRet = false; //这句话不知道有什么用。。
    do{
        this->scheduleUpdate();
        bRet = true;
    }while(0);//执行一次
    return bRet;
}

HelloWorld.h

class HelloWorld:public cocos2d::CCLayer{
    public:
            virtual bool init();
            static cocos2d::CCScene* scene();
            void menuCloseCallback(CCObject* pSender);
            CREATE_FUNC(HelloWorld);
            /*重写update函数*/
            virtual void update(float dt); 
};

然后重写update函数

void HelloWorld::update(float dt){ CCLOG("update");//调试窗口会显示update }

自己写一个update函数

void HelloWorld::myUpdate(float mydt){
    CCLOG("%f",mydt);
}

在头文件添加函数

this->schedule(schedule_selector(HelloWorld::myUpdate),1.0f);
//指定每帧执行自定义函数,指定每隔1秒执行一次

函数定义最后加一条语句

this->unschedule(schedule_selector(HelloWorld::mydate));
//这样就可以停止调用函数

scheduleOnce

用法

this->scheduleOnce(schedule_selector(HelloWorld::mydate),3.0f);
/*第一个参数还是定时器,第二个参数是多长时间后执行定时器且只执行一次(Once直白。。)*/

观察者模式


每章的标题真的是误人子弟啊


  1. addObserver(订阅消息)
    参数:
    CCObject *target —要订阅消息的主体
    SEL_CallFuncO selector —消息回调函数
    const char *name —消息名称
    CCOject *obj —要传递的数据
  2. removeObserver(取消订阅消息)
    参数:
    CCObject *target —取消订阅消息的主体
    const char *name —消息名称
    …等等
    这本书的版本真的是太老了。。3.X里面已经没有CCNotificationCenter了,EventListenerCustom 为代替,详细的去看API

猜你在找的Cocos2d-x相关文章