cocos2dx 练习笔记(一) 触发点击交互事件
说明:
1、代码放到 init()里
2、cocos2dx版本是3.10
auto listener1 = EventListenerTouchOneByOne::create(); listener1->setSwallowTouches(false); listener1->onTouchBegan = [](Touch* touch, Event* event){ MessageBox("haha", "title"); //return true; return false; }; auto listener2 = EventListenerTouchOneByOne::create(); listener2->setSwallowTouches(false); listener2->onTouchBegan = [](Touch* touch, Event* event){ //MessageBox("xixi", "title"); log("xixi"); return true; return false; }; listener2->onTouchMoved = [](Touch* touch ,Event* event){ //MessageBox("2 move", "title"); log("2 move"); }; listener2->onTouchEnded = [](Touch* touch ,Event* event){ //MessageBox("2 end", "title"); log("2 end"); }; _eventDispatcher->addEventListenerWithFixedPriority(listener1, 3);//不能为0,值越小的将会比值大的先调用。 0用来作为场景图的基础优先级,所以优先级不能设置为0 _eventDispatcher->addEventListenerWithFixedPriority(listener2, 2);//先执行这个监听事件
用到的函数几个了解下:
添加到事件队列里的介绍3个:
ddEventListenerWithSceneGraphPriority
void addEventListenerWithSceneGraphPriority ( EventListener * listener, Node * node )
说明:给一个指定的事件添加一个事件监听器,该监听器带有基于场景图的优先级
参数:
listener 指定事件的监听器。
node 监听器的优先级基于此节点的绘制顺序.
addCustomEventListener
EventListenerCustom* addCustomEventListener (const std::string & eventName,const std::function< void(EventCustom *)> & callback )
说明:添加一个自定义事件监听器。 该监听器会使用值为1的一个固定优先级.
参数:
eventName 任意的事件名称。
callback 跟事件名称关联的回调函数
addEventListenerWithFixedPriority
void addEventListenerWithFixedPriority ( EventListener * listener,int fixedPriority )
说明:给一个指定的事件添加一个事件监听器,该监听器带有基于场景图的优先级 。
参数:
listener 指定事件的监听器。
node 监听器的优先级基于此节点的绘制顺序.
删除移除添加的事件:
void removeEventListener ( EventListener * listener )
说明:没啥好说的就是按照listener移除监听分发的事件
void removeEventListenersForType ( EventListener::Type listenerType )
说明: 按照listenerType类型移除相同类型的事件
void removeEventListenersForTarget ( Node * target, bool recursive = false )
说明:移除所有和target关联的节点,recursive是否递归的删除子节点的监听器
void removeCustomEventListeners ( const std::string & customEventName )
说明:删除和customEventName相同名字的监听事件