cococos 2 d-Xにおけるscheduleの各種使用

3159 ワード

マルチスレッドタイマ
タイトルの濃霧は実はマルチスレッドを話していません
(cococos 2 d-Xゲーム開発の旅第8章読書ノート)
cococos 2 d-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  。。)*/ 

オブザーバモード
毎章のタイトルは本当に人の子弟を誤るのですね.
  • addObserver(購読メッセージ)パラメータ:CCObject*target-メッセージを購読するマスターSEL_CallFuncO selector-メッセージコールバック関数const char*name-メッセージ名CCObject*obj-転送するデータ
  • removeObserver(購読解除メッセージ)パラメータ:CCObject*target-購読解除メッセージの本体const char*name-メッセージ名...など、この本のバージョンは本当に古いです.3.Xの中にCCNotificationCenterはもうありません.EventListenerCustomの代わりに、API
  • を詳しく見に行きます.