注册 登录
  • 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!

cocos2dx 练习笔记(一) 触发点击交互事件

OC/C/C++ 开心洋葱 3048次浏览 已收录 0个评论 手机上查看

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相同名字的监听事件


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明cocos2dx 练习笔记(一) 触发点击交互事件
喜欢 (0)
[开心洋葱]
分享 (0)
关于作者:
开心洋葱,开心洋葱头,水墨

您必须 登录 才能发表评论!

……