cocos2d-x CCNotificationCenter 通知中心

原创 2013年12月04日 10:31:44

游戏中经常遇到几个层之间互相通信的问题。比如,在游戏界面时,可以打开音乐设置界面,弹出音乐设置界面需要暂停游戏,当设置好音乐时回到游戏界面时,游戏要启动继续游戏,如果添加头文件或者不能互相添加头文件时,可以用此方法很实用的。

1. 在需要发送消息的地方(比如点击下一关按钮的回调函数),post消息即可,post有两种类型,带数据和不带数据:

void postNotification(const char *name);

void postNotification(const char *name, CCObject *object);

name:消息的名称,可以当成是消息的唯一标识,一般这样定义name:

const char * const myName = "myname";

例如:CCNotificationCenter::sharedNotificationCenter()->postNotification(myName, (CCObject*)1);

2. 在任何地方,只要你对某个消息感兴趣,你就可以在那里监听该消息。假如你对HelloWorld类,myName消息感兴趣。

例如:CCNotificationCenter::sharedNotificationCenter()->addObserver(this, callfuncO_selector(HelloWorld::myFunction), myName, NULL);

void HelloWorld::myFunction(CCObject* obj)

{

//这里写接收消息后需要处理的事情

}

3. 注意:一般的在接受通知的一方在接受完通知后需要remove监听。

例如:

HelloWorld::~HelloWorld()

{

CCNotificationCenter::sharedNotificationCenter()->removeObserver(thismyName); 

}

4. 需要注意的一点是,必须要先注册监听,再调用发送,要不然就会监听不到消息。


《Cocos2d-x之Lua核心编程》读书笔记:Lua基础

Lua编程三类用户 需要一门简单的脚步语言嵌入到应用程序中的开发者 想要提高c/c++语言开发者 想要提高运行效率的脚步开发者 特点 易嵌入,可以方便的与c/c++编写的游戏逻辑互相调用 简单,不涉及...
  • c_boy_lu
  • c_boy_lu
  • 2016年01月29日 15:07
  • 1678

【Cocos2dx游戏开发】CCNotificationCenter传递消息和数据

在开发游戏的时候我们经常需要在层与层之间、场景与场景之间传递数据和消息,Cocos2dx框架应用观察者模式为我们封装了一个CCNotificationCenter类,也叫消息通知中心,它也是一个单例类...
  • lisong694767315
  • lisong694767315
  • 2014年04月04日 00:08
  • 2683

cocos2d-x中锚点设置及定位方式

CCNode有个成员函数名叫ignoreAnchorPointForPosition(bool),对layer来说默认是true。
  • h_h_w
  • h_h_w
  • 2014年10月08日 17:08
  • 1180

Cocos2d-x CCNotificationCenter 通知中心 自定义消息事件

本文转自小邓笔记,原文链接:http://blog.csdn.net/crayondeng/article/details/11677457 向...
  • wangsenmm
  • wangsenmm
  • 2014年04月30日 14:26
  • 854

Cocos2D-x游戏开发之二十二:CCNotificationCenter观察者模式基础(1)

Cocos2D-X为我们准备了太多东西,当我们想要监听一个动作但是都不能老是盯在这一件事情上的时候就可以用他为我们量身定制的观察者模式,今天我们初步来学习一下这个传说很久的观察这模式在Cocos2D-...
  • vanquishedzxl
  • vanquishedzxl
  • 2014年04月13日 20:33
  • 4662

cocos2d-x节点(CCNotificationCenter.h)API

本文来自http://blog.csdn.net/runaying ,引用必须注明出处! cocos2d-x节点(CCNotificationCenter.h)API 温馨提醒:为了大家能更好学...
  • runaying
  • runaying
  • 2013年11月30日 14:15
  • 1444

Cocos2D-x游戏开发之二十三:CCNotificationCenter观察者模式(2)-不同层之间事件的发送和接受

刚才我们 学习了基本的CCNotificationCenter观察者模式在一个层之中监听事件,现在我们再进一步学习如何在不同层之间监听吧,这一节的知识点我们在HelloWorld中发送一个事件消息在O...
  • vanquishedzxl
  • vanquishedzxl
  • 2014年04月13日 20:59
  • 2849

cocos2d-x2.2实现椭圆运动,参数为中心点坐标和长半轴、短半轴

CCAction运动中没有实现椭圆运动或者圆周运动,于是在网上找了很多相关帖子,有一个CCCircleBy可以实现圆周运动,但是当使用CCRepeatForever循环运动时,总是会卡一下,所以在网上...
  • u011874528
  • u011874528
  • 2014年12月03日 14:51
  • 640

【通知!】本人编著书籍《Cocos2d-x游戏开发 基础与实战》开始发售

本人的第一本教程书籍《Cocos2d-x游戏开发 基础与实战》kai'sh
  • w337198302
  • w337198302
  • 2014年08月19日 18:57
  • 3459

cocos2d-x 添加本地通知UILocalNotification

猴子原创,欢迎转载!转载请注明出处,谢谢! 原文地址:http://blog.csdn.net/yanghuiliu/article/details/7439917 本地通知UILocalNoti...
  • yanghuiliu
  • yanghuiliu
  • 2012年04月09日 10:50
  • 7030
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:cocos2d-x CCNotificationCenter 通知中心
举报原因:
原因补充:

(最多只允许输入30个字)