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

40 篇文章 1 订阅
36 篇文章 0 订阅

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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GameTomato

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值