Cocos2D-x游戏开发之:CCNotificationCenter观察者模式基础

Cocos2D-X为我们准备了太多东西,当我们想要监听一个动作但是都不能老是盯在这一件事情上的时候就可以用他为我们量身定制的观察者模式,今天我们初步来学习一下这个传说很久的观察这模式在Cocos2D-X中的简单运用。

其实观察者模式的初步学习还是很简单的我们只要定义两个函数即可:

  1. classHelloWorld:publiccocos2d::CCLayer
  2. {
  3. public:
  4. virtualboolinit();
  5. staticcocos2d::CCScene*scene();
  6. voidsengMsg(CCObject*pSender);
  7. voidtestMSG(CCObject*pSender);
  8. CREATE_FUNC(HelloWorld);
  9. };
  10. #endif//__HELLOWORLD_SCENE_H__

然后在init()函数中添加事件的监听。在SendMSG()函数中发送事件消息。
boolHelloWorld::init()
  • boolbRet=false;
  • do
  • {
  • //////////////////////////////////////////////////////////////////////////
  • //superinitfirst
  • CC_BREAK_IF(!CCLayer::init());
  • CCNotificationCenter::sharedNotificationCenter()->addObserver(this,callfuncO_selector(HelloWorld::testMSG),"test",NULL);
  • CCMenuItemLabel*labelItem=CCMenuItemLabel::create(CCLabelTTF::create("SendMSG","Arial",26), CCMenu*menu=CCMenu::create(labelItem,NULL);
  • this->addChild(menu);
  • bRet=true;
  • }while(0);
  • returnbRet;
  • }
  • voidHelloWorld::sengMsg(CCObject*pSender)
  • CCLOG("sendMSG");
  • CCNotificationCenter::sharedNotificationCenter()->postNotification("test",248);line-height:18px;list-style-position:outside !important;"> }
  • voidHelloWorld::testMSG(CCObject*pSender)
  • CCLOG("testMSG");
  • }

  • 现在当我们点击菜单按钮式就可以看到事件被发送和接受的调试信息:



    0

    相关文章

        本文实践自 RayWenderlich、Ali Hafizji 的文章《...
    Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
    第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
        Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
    1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
       Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...