Cocos2d-x
发布时间:2022-05-03 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Cocos2d-x学习笔记(六)—— 事件处理,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
事件处理:
- 事件监听和事件监听绑定
- 通知中心
- Input输入框的使用
事件监听和事件监听绑定
事件监听处理,有个重要的类EventDispatcher:
这个类管理事件监听器的订阅和事件的分发
事件监听器列表以这样的方式来进行管理:当事件正在分发的过程中,事件监听器可以被添加或者移除,包括事件监听器内部的监听器。
其常用的成员函数:
参数:listener 指定事件的监听器。 fixedPriority 监听器的固定优先级。
参数:eventName 任意的事件名称。 callBACk 跟事件名称关联的回调函数。
下面是各种类型的监听类,我们把需要的用到的监听类安所需的顺序添加到EventDispatcher即可。
主要的监听类:
EventListenerAcceleration 重力感应
EventListenerCustom 用户自定义事件
EventListenerFocus 聚焦监听
EventListenerKeyboard 键盘监听
EventListenerMouse 鼠标监听
EventListenerPhysicsContactWithBodies 碰撞监听器
EventListenerPhysicsContactWithGroup 碰撞监听器
EventListenerPhysicsContactWithShapes 碰撞监听器
EventListenerTouchAllAtOnce 多点触碰
EventListenerTouchOneByOne 单点触碰
EventListenerController 游戏手柄监听类
启动添加监听的例子:
auto listener = EventListenerTouchAllAtOnce::create();
listener->onTouchesBegan = CC_CALLBACK_2(LayerTest1::onTouchesBegan,this);
listener->onTouchesMoved = CC_CALLBACK_2(LayerTest1::onTouchesMoved,this);
listener->onTouchesEnded = CC_CALLBACK_2(LayerTest1::onTouchesEnded,this);
EventDispatcher *_eventDispatcher;
_eventDispatcher->addEventListenerWithSceneGraphpriority(listener,this);
通知中心
消息传递和接收,类似android里的广播机制
主要函数:
void addObserver(Ref *target,SEL_CallFuncO SELEctor,const std::string& name,Ref *sender);
功能:添加通知
参数:1、通知目标;2、通知回调函数;3、通知的名字;4、发送通知的通知源
void removeObserver(Ref *target,const std::string& Name);
功能:移除通知
参数:1、通知目标;2、通知的名字
void postNotification(const std::string& name,Ref *sender);
功能:发送通知
参数:1、通知的名字;2、发送通知的通知源
使用时:
NotificationCenter::geTinstance()->addObserver(Ref *target,Ref *sender);
NotificationCenter::geTinstance()->postNotification(const std::string& name,Ref *sender);
NotificationCenter::geTinstance()->removeObserver(Ref *target,const std::string& Name);
Input输入框的使用
auto pTextField = TextFieldTTF::textFieldWithPlaceHolder("<click here for input>",FONt_name,FONT_SIZE);
addChild(pTextField);
大佬总结
以上是大佬教程为你收集整理的Cocos2d-x学习笔记(六)—— 事件处理全部内容,希望文章能够帮你解决Cocos2d-x学习笔记(六)—— 事件处理所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。