コード例 #1
0
//触摸:移动
void CNFServerChangeScrollLayer::onTouchMoved(Touch *pTouch, Event *pEvent)
{
    if(m_bTouching==false)return;

    Vec2 ptTouchPoint =pTouch->getLocation();
    Vec2 pNewPos=getPosition();

    //移动层
    pNewPos.x+=ptTouchPoint.x-m_fTouchPassPosX;
    this->setPosition(pNewPos);

    //重置初始点
    m_fTouchPassPosX=ptTouchPoint.x;
    
    //若触摸到按钮
    if (m_bIsTouchBtn==true)
    {
//        CCMenu *pMenu = dynamic_cast<CCMenu*>(getChildByTag(enTagMenu));
         auto pMenu = static_cast<Menu*>(getChildByTag(enTagMenu));
        if (pMenu!=NULL)
        {
            pMenu->onTouchCancelled(pTouch,pEvent);
            m_bIsTouchBtn = false;
        }
    }
}
コード例 #2
0
ファイル: AbstractScene.cpp プロジェクト: dreamsxin/bombyx3d
 void AbstractScene::cancelTouch(int fingerIndex, const glm::vec2& position)
 {
     glm::vec2 p = position;
     bool result = false;
     FOR_EACH_COMPONENT(onBeforeTouchEvent(TouchEvent::Cancel, fingerIndex, p, result));
     if (!result)
         onTouchCancelled(fingerIndex, position);
     FOR_EACH_COMPONENT_REVERSE(onAfterTouchEvent(TouchEvent::Cancel, fingerIndex, p, result));
 }