当前位置: 首页 > 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此方法在调用特定函数时还是比较方便不易出错的,一定要记得对通知进行移除,保证通知名的一致性。

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

相关文章:

  • 代码随想录day17
  • Classification-based framework for binarization on OCT-ME论文学习和总结
  • 【MeZO】《Fine-Tuning Language Models with Just Forward Passes》译读笔记
  • 充电桩检测仪表TK4860E交流充电桩检定装置
  • 2.3 YARN伪分布式集群搭建
  • 基于 AIGC,RocketMQ 学习社区探索开源软件学习新范式
  • POSTGRESQL SERVERLESS 是POSTGRESQL 数据库的未来 (译)
  • Promise.all() 方法的使用
  • 车载测试:详解ADAS传感器(相机)标定数据采集方法
  • el-upload 多文件依次上传(防抖 + 递归)