检测滑动触摸(向左,向右,向上,向下)-我的cocos2d-x学习之路

本文介绍了如何在cocos2d-x游戏中添加手势识别,通过监听触屏开始和结束事件来判断用户的滑动方向,包括向左、向右、向上和向下。在触摸结束时,根据x轴和y轴的位移判断滑动方向,并执行相应操作,如创建卡片和检查游戏结束状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//加入游戏的手势识别,进行绑定

    auto touchListener = EventListenerTouchOneByOne::create();
    touchListener->onTouchBegan = CC_CALLBACK_2(HelloWorld::onTouchBegan,this);
    touchListener->onTouchEnded = CC_CALLBACK_2(HelloWorld::onTouchEnded,this);

    _eventDispatcher->addEventListenerWithSceneGraphPriority(touchListener,this);


//获取初始,x,y坐标

bool HelloWorld::onTouchBegan(cocos2d::Touch * touch,cocos2d::Event *unused_event){
    Point touchPO = touch->getLocation();
    firstX = touchPO.x;
    firstY = touchPO.y;

    return true;

}


void HelloWorld::onTouchEnded(cocos2d::Touch * touch,cocos2d::Event *unused_event){


    //获取X轴,Y轴的移动范围
    Point touchPO  = touch->getLocation();
    endX = firstX-touchPO.x;
    endY = firstY-touchPO.y;
    //判断,x轴跟y轴的移动距离,如果x轴的绝对值比y轴的大就是左右,否则就是上下

    if(abs(endX) > abs(endY))
    {
        if(endX+5>0){
        if(doLeft()){
            autoCreateCardNumber();
            doCheckGameOver();
            }
        }
        else{
            if(doRight()){
            autoCreateCardNumber();
            doCheckGameOver();
            }
        }

    }else{
        if(endY+5>0){
            if(doDown()){
            autoCreateCardNumber();
            doCheckGameOver();
            }

        }
        else{
            if(doUp()){
            autoCreateCardNumber();
            doCheckGameOver();
            }
        }
    }
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值