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

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


版权声明:本文为weixin_44309889原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。