当前位置: 首页 > biancheng >正文

cocos2dx:CCNotificationCenter如何在工程中创建、使用并去除通知

cocos2dx:CCNotificationCenter如何在工程中创建、使用并去除通知

设备/引擎:Mac(11.6)/cocos

开发工具:Xcode(13.0)

开发需求:cocos2dx:通过CCNotificationCenter在工程中创建、使用并去除通知

工程中除了直接调用指定函数来实现功能外,我们还可以通过在指定位置通过通知来响应特定的功能。

一个可用有效的通知需要我们创建、调用、移除三步缺一不可

1.创建通知-addObserver
函数定义

CCNotificationCenter::addObserver(CCObject *target, 
                                       SEL_CallFuncO selector,
                                       const char *name,
                                       CCObject *obj)

四个参数:通知对象的目标(为谁通知)、需要运行的函数、通知名称、对象

一般工程中写法如下

#define kGameCallback "game.notification"
CCNotificationCenter::sharedNotificationCenter()->addObserver(this, callfuncO_selector(GameScene::gameLayer), kGameCallback, NULL);

注:一般需要放在初始化阶段,可以放在init()或onEnter()函数中

2.响应通知-postNotification
函数定义

CCNotificationCenter::postNotification(const char *name)

实际工程中写法

CCNotificationCenter::sharedNotificationCenter()->postNotification("game.notification");

此方法比较好理解,我们在需要触发通知的时候调用即可

3.移除通知-removeObserver
函数定义

CCNotificationCenter::removeObserver(CCObject *target,const char *name)

工程中代码

CCNotificationCenter::sharedNotificationCenter()->removeObserver(this, kGameCallback);

注:我们必须要对创建的通知进行移除,一般在程序运行完之后处理即可,一般可以放在onExit()函数中

cocos2dx:CCNotificationCenter此方法在调用特定函数时还是比较方便不易出错的,一定要记得对通知进行移除,保证通知名的一致性。

希望能给大家带来帮助!!!有什么问题需要讨论的可以评论私信欢迎讨论~

相关文章:

  • 牛客练习赛#84 F 莫比乌斯反演+杜教筛+技巧+斐波那契数列和gcd的结论+矩阵快速幂
  • ZZNUOJ_用C语言编写程序实现1342:支配值数目(附完整源码)
  • java毕业设计后勤管理系统餐饮评价监督系统(附源码、数据库)
  • 前端基础学习笔记
  • 【TS】联合类型--类型断言--类型推断
  • 谈笑风声的秘密
  • QT影城网上售票系统
  • NetCDF数据在ArcMap中的使用
  • 打怪升级(考验思路)
  • 持续精进,改变自己