区分上下左右手势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;
}

已在游戏中使用!

时间: 2024-10-21 22:57:55

区分上下左右手势cocos2dx的相关文章

android 上下左右手势判断 根据别人的改的

GestureUtils.java package com.gesture; import android.content.Context;import android.util.DisplayMetrics;import android.view.WindowManager; public class GestureUtils { //获取屏幕的大小 public static Screen getScreenPix(Context context) { DisplayMetrics dm =

(转)iphone上下左右手势判断代码

- (void)viewDidLoad { UISwipeGestureRecognizer *recognizer; recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:selfaction:@selector(handleSwipeFrom:)]; [recognizer setDirection:(UISwipeGestureRecognizerDirectionRight)]; [[self view] addGes

Cocos2d-x 3.x版2048游戏开发

今天给大家介绍如何快速开发2048这样一款休闲游戏,理解整个2048游戏的开发流程,从中你将可以学习到以下内容: 2048游戏的逻辑 Cocos2d-x中上下左右手势的识别 游戏中卡片类的创建 添加卡片到游戏中 游戏中的逻辑实现 游戏中随机卡片的生成 游戏结束判断 游戏分数的添加 游戏美化 笔者的开发环境:    Cocos2d-x 3.1.1(开发引擎)    Visual Studio 2012(Win32)    Xcode 5.1(Mac系统下) 这里注明一下,本教程来自极客学院,小巫对

iOS 优化内存(五)开发流程总结

iOS开发流程总结 流程:注册.开发.真机测试.发布以及上线. iPhone iOS 4从注册到app上线开发流程 一.关于注册账号IDP和Apple ID: 1.注册App ID(无论是iOS使用者还是开发者都需要*****ID,只是后者还需要付99$注册成为开发者.) 网址:http://developer.apple.com 由于上边的网址没有注册按钮,所以去iTunes注册,方法参照(这里注册的是免费的,您需要注册付费的): http://jingyan.baidu.com/articl

iOS-响应上下左右滑动手势

iOS-响应上下左右滑动手势 分类: iPhone开发2012-03-17 14:42 25489人阅读 评论(8) 收藏 举报 iosup -(void)viewDidLoad{ UISwipeGestureRecognizer *recognizer; recognizer = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handleSwipeFrom:)]; [recognizer setDir

Cocos2d-x《赵云要格斗》--虚拟摇杆控制精灵上下左右运动

本文将要实现一个横版格斗类游戏,并实现摇杆控制英雄上下左右运动.这里实现了能通过虚拟摇杆控制精灵的运动,而且能够改变精灵运动时的脸部朝向.之前看了好多人写虚拟摇杆,但是就是没写控制精灵的运动和脸朝向的.所以自己就想要写个文章好好讲下它的实现思路.好了,下面我们开始吧. 最终效果: cocos2d-x版本:2.2.5 工程环境:windows7+VS2010 打开方式:将工程放在cocos2d-x安装目录下的project文件夹下用VS打开 目录: 一.修改背景图片和窗口大小 二.添加虚拟摇杆 三

写自己的游戏 - 用颜色来区分不同的log输出(cocos2d-x) 同样适用于其他游戏引擎

游戏脚本化开发已经成为一种主流的趋势,伴随着产生大量的人才需求.近两年,各个游戏公司对于lua程序员的需求明显是增长额有点过分了,真的是太不正常了.抛开市场化需求的东西不谈,我们谈一些技术,一些琐碎的,可有可无,非重点的技术.近几天我都在写客户端的开发框架,目的就是让LUA程序员可以使用一款自己喜欢的编辑器,版本控制工具以及部分内部工具就可以随心所欲的开发逻辑模块,这对我来说也算是满有挑战性的,不过我喜欢,反正我都是写给自己玩,又不用别人去要求什么,所以随心所欲吧,尽量做到最好. 对于cocos

cocos2dx 3.0(多个按钮button执行同一事件的区分)

1 // 2 // ATTGamePoker.hpp 3 // MalaGame 4 // 5 // Created by work on 2016/10/18. 6 // 7 // 8 9 #ifndef ATTGamePoker_hpp 10 #define ATTGamePoker_hpp 11 12 #include <stdio.h> 13 #include <cocos2d.h> 14 15 16 class ATTGamePoker : public cocos2d:

Cocos2d-x虚拟摇杆控制精灵上下左右运动----之游戏开发《赵云要格斗》

这是自己开发的第一次小游戏,有需要源代码和材料的邮箱留个,这里实现了能通过虚拟摇杆控制精灵的运动,而且能够改变精灵运动时的脸部朝向.之前看了好多人写虚拟摇杆,但是就是没写控制精灵的运动和脸朝向的.所以自己就想要写个文章好好讲下它的实现思路.好了,下面我们开始吧. 目录: 一.修改背景图片和窗口大小 二.添加虚拟摇杆 三.添加精灵并用摇杆控制精灵的运动 四.思路总结 一.修改背景图片和窗口大小 新建一个工程,工程名为HelloCpp.为了让效果更加好些,首先修改下窗口的大小,在main.cpp中改