首页 > 代码库 > 区分上下左右手势cocos2dx
区分上下左右手势cocos2dx
直接上方法:我是根据触摸开始点和结束点做的方向判断 ,有更好方法的小伙伴请留言给我 ,多谢
void GameLayer::ccTouchEnded(CCTouch *touch,CCEvent *event){ if (openTouch) { CCPoint touchEndP=touch->getLocation(); double d=Distance(touchStartP,touchEndP); CCLOG("两点的距离 :%f",d ); //如果触摸距离超过20判断手势方向 if (d>20) { if (touchStartP.x-touchEndP.x<0&&touchStartP.x-touchEndP.x<touchStartP.y-touchEndP.y&&touchEndP.x-touchStartP.x>touchStartP.y-touchEndP.y) { CCLOG("右"); touchRight(); } if (touchStartP.x-touchEndP.x>0&&touchStartP.x-touchEndP.x>touchStartP.y-touchEndP.y&&touchEndP.x-touchStartP.x<touchStartP.y-touchEndP.y) { CCLOG("左"); touchLeft(); } if (touchStartP.y-touchEndP.y<0&&touchStartP.y-touchEndP.y<touchStartP.x-touchEndP.x&&touchEndP.y-touchStartP.y>touchStartP.x-touchEndP.x) { CCLOG("上"); touchUp(); } if (touchStartP.y-touchEndP.y>0&&touchStartP.y-touchEndP.y>touchStartP.x-touchEndP.x&&touchEndP.y-touchStartP.y<touchStartP.x-touchEndP.x) { touchDown(); } } } }
/************************ 计算两点间距离 ************************/ double GameLayer::Distance(CCPoint pt1,CCPoint pt2) { double d; d=sqrt((pt1.x-pt2.x)*(pt1.x-pt2.x)+(pt1.y-pt2.y)*(pt1.y-pt2.y)); return d; }
已在游戏中使用!
区分上下左右手势cocos2dx
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。