1.版本更新
从cocos2d-x v3.0开始,CCNotificationCenter类被抛弃,使用新的事件派发机制:EventDispatcher
2.简介
从cocos2d-x v3.0开始,由于采用了新的C++11的标准,cocos引入了一种新的处理用户事件的事件派发机制。
由三部分组成:
- Event Listener 封装你的事件代码
- Event Dispatcher 通知相应的事件监听器
- Event Object 包含事件的相关信息
为了响应event
,你必须创建一个EventListener
。针对不同类型的event
,共有5种不同的EventListener
:
- EventListenerTouch 触摸事件
- EventListenerKeyboard 按键事件
- EventListenerAcceleration 加速事件
- EventListenerMouse 鼠标事件
- EventListenerCustom 自定义事件
之后,将你的事件处理代码(一般是在callback
函数中)和相应的事件监听器关联起来。例如,onTouchBegin
和EventListenerTouch
相关联、onKeyPressed
和EventListenerKeyboard
相关联。
之后,在EventDispatcher
上注册你的EventListener
。
当事件发生时,EventDispatcher
将会将事件对象Event Object
派发到指定的事件处理回调函数。
3.例子
3.1 TouchEvent
首先,创建3个Sprite
:
auto sprite1 = Sprite::create("Images/CyanSquare.png");
sprite1->setPosition(origin+Point(size.width/2, size.height/2) + Point(-80, 80));
addChild(sprite1, 10);
aut