zoukankan      html  css  js  c++  java
  • 实习小白::cocos2d-x 2.2 study ---------- 长按事件处理

    cocos2d-x 2.2 study    ----------    长按事件处理

    其实是在点击事件发生的时候,

    在开始的时候添加一个一次的计时器,

    在计时器中添加方法,

    在结束的时候将添加的内容移除掉

    代码:(主要代码)

     1 void    GetFirstRechargePackLayer::menuEvent(CCObject* pSender, cocos2d::ui::TouchEventType type)
     2 {
     3     switch (type)
     4     {
     5     case TOUCH_EVENT_BEGAN:
     6         {
     7             if ( pSender == m_pImage4)
     8                 m_materialType = EP_HERO;
     9             else
    10                 m_materialType = EP_ITEM;
    11             m_isLongClick = false;
    12             m_icon = pSender;
    13             touchBeginPoint = ((cocos2d::ui::UIImageView*)pSender)->getTouchStartPos();
    14             this->scheduleOnce(schedule_selector (GetFirstRechargePackLayer::createTipLayer),0.2);
    15         }
    16         break;
    17     case TOUCH_EVENT_MOVED:
    18         {
    19             touchMovedPoint = ((cocos2d::ui::UIImageView*)pSender)->getTouchMovePos();
    20             float distance = sqrt((touchMovedPoint.x-touchBeginPoint.x) * (touchMovedPoint.x-touchBeginPoint.x) + (touchMovedPoint.y-touchBeginPoint.y)*(touchMovedPoint.y-touchBeginPoint.y));
    21 
    22             if (distance >= 50)
    23             {
    24                 this->unschedule(schedule_selector (GetFirstRechargePackLayer::createTipLayer));
    25             }
    26         }
    27         break;
    28     case TOUCH_EVENT_ENDED:
    29         {
    30             this->unschedule(schedule_selector (GetFirstRechargePackLayer::createTipLayer));
    31             if (m_isLongClick == true)
    32             {
    33                 this->removeChild(m_pLayerTips);
    34             }
    35         }
    36         break;
    37     case TOUCH_EVENT_CANCELED:
    38         {
    39             this->unschedule(schedule_selector (GetFirstRechargePackLayer::createTipLayer));
    40             if (m_isLongClick == true)
    41             {
    42                 this->removeChild(m_pLayerTips);
    43             }
    44         }
    45         break;
    46     default:
    47         break;
    48     }
    49 }
    50 
    51 void GetFirstRechargePackLayer::createTipLayer(float dt)
    52 {
    53     m_isLongClick = true;
    54     // 参数:1->图片(所点击的那个图片),2->类型(图片的类型),3->id
    55     m_pLayerTips = DesriptionTips::create(m_icon,m_materialType,(long)((cocos2d::ui::UIImageView*)m_icon)->getUserData());
    56     
    57     this->addChild(m_pLayerTips);
    58 }
  • 相关阅读:
    [HDU 3038] How Many Answers Are Wrong
    [BZOJ 4977][Lydsy1708月赛]跳伞求生
    [BZOJ4974] 字符串大师
    总结-exCRT
    [luogu 4777] exCRT
    [AHOI 2009] 中国象棋
    JavaScript MVC框架PK:Angular、Backbone、CanJS与Ember
    十一黄金周 加班加点随笔
    从两个设计模式到前端MVC-洪宇
    Todo&Rocket
  • 原文地址:https://www.cnblogs.com/dudu580231/p/4975576.html
Copyright © 2011-2022 走看看