美文网首页cocos2d-Lua
3分钟学会 cocos2d 触摸事件响应

3分钟学会 cocos2d 触摸事件响应

作者: Zui | 来源:发表于2015-07-27 16:01 被阅读1695次

    第1步:创建一个触摸监听器

    auto listener = EventListenerTouchOneByOne::create();
    

    创建一个单点触碰监听器

    第2步:配置触摸监听器的属性

    listener->setSwallowTouches(true);
    

    设置监听是否吞并事件

    listener->onTouchBegan = CC_CALLBACK_2(MyUIDrama::TouchBegan, this);
    listener->onTouchMoved = CC_CALLBACK_2(MyUIDrama::TouchMoved, this);
    listener->onTouchEnded = CC_CALLBACK_2(MyUIDrama::TouchesEnded, this);
    

    设置监听器的回调函数,其中:

    • onTouchBegan:触碰按下时的回调
    • onTouchMoved:触碰移动时的回调
    • onTouchEnded:触碰弹起时的回调

    第3步:添加触摸监听器

    添加触摸监听器有两种方法

    • 方法1:addEventListenerWithFixedPriority
    Director::getInstance()->getEventDispatcher()->addEventListenerWithFixedPriority(listener, 1);
    

    addEventListenerWithFixedPriority有两个参数:
    参数1:Listenter 监听器
    参数2:fixedPriority 固定优先级,其中0是系统占有,不能设置为0

    • 方法2:addEventListenerWithSceneGraphPriority
    Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);
    

    addEventListenerWithSceneGraphPriority有两个参数:
    参数1:Listenter 监听器
    参数2:node 根据node来确定监听器的优先级

    简单来说两种方法的区别就是一个是自己手动指定Listenter的优先级,一个是根据node来决定。

    相关文章

      网友评论

        本文标题:3分钟学会 cocos2d 触摸事件响应

        本文链接:https://www.haomeiwen.com/subject/bsymqttx.html