cocos2d-X 中 schedule 的各种使用

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

多线程做定时器

标题大雾其实没讲多线程

(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@

观察者模式


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


  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相关文章