在android SDK 自带的sample snake,只能通过上下左右方向键控制贪吃蛇的方向,

模拟器上玩没有问题,装到手机后基本玩不了,本着自己丰衣足食的精神,做了点小小的改动,

通过手机屏滑动来控制方向,

主要涉及的类public GestureDetector (GestureDetector.OnGestureListener listener),是一个触摸手势识别类,

在绑定的监听器listener需要实现GestureDetector.OnGestureListener接口中的一些方法,这里我们主要是实现

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY)方法

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
Log.d("TAG", "onFling");
System.out.println("onFling");
if(Math.abs(e1.getY()-e2.getY())>Math.abs(e1.getX()-e2.getX()))//取绝对值来判断是水平滑动还是垂直滑动
{
if(e1.getY()>e2.getY())
{
System.out.println("up");
mSnakeView.onKeyDown(KeyEvent.KEYCODE_DPAD_UP, null);
}
else
{
System.out.println("down");
mSnakeView.onKeyDown(KeyEvent.KEYCODE_DPAD_DOWN, null);
}

}
else
{
if(e1.getX()>e2.getX())
{
System.out.println("lef");
mSnakeView.onKeyDown(KeyEvent.KEYCODE_DPAD_LEFT, null);
}
else if(e1.getX()<e2.getX())
{
System.out.println("right");
mSnakeView.onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, null);
}
}

return false;
}

其次我们要在在mSnakeView上添加一个OnTouchListener监听器,即mSnakeView.setOnTouchListener(OnTouchListener l)

要实现OnTouchListener接口中的

public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return gesturedetector.onTouchEvent(event);

}

完成以上后基本的工作就完成了,软件安装到手机后,还是无法识别滑动手势,很是苦恼,后发现少了点东西,

mSnakeView.setLongClickable(true);

这个一定得加上,不然不会调用onFling这个方法

贪吃蛇用滑动控制方向相关推荐

  1. 微信小程序-贪吃蛇开发9 滑动控制与碰撞检测

    本系列是作者自学实践过程的记录 本文是关于贪吃蛇的滑动控制 有问题欢迎讨论 目录 一.滑动控制 1.1 设计思想 1.2 代码实现 1.3 效果展示: 1.4 整体赋值 二.setInterval函数 ...

  2. 重力感应贪吃蛇(C51 MPU6050 8*8LED点阵)

    重力感应贪吃蛇(C51 MPU6050 8*8LED点阵) 本文讲述如何从无到有用C51做一个重力感应的贪吃蛇,包括元件选型.原理图PCB绘制和代码编写. 重力感应贪吃蛇(C51 MPU6050 8* ...

  3. iOS 贪吃蛇单机版的实现

    github地址:贪吃蛇小游戏 前言 前天了解到疯狂iOS讲义这本书. 上面有一个手势教学的代码实例:贪吃蛇. 于是找到了它的电子版和源码.进行学习. 做出来的效果就是这样的,可能样子有点丑,但我也不 ...

  4. matlab cat函数_如何用Matlab编写贪吃蛇游戏?(持续更新)

    今后我们实验室的研究重点将会聚焦在"基于游戏的测评"和"教育游戏化"这两个主题上,因此很有必要研究实现"爆款"游戏的一些基本的技术方法.这篇 ...

  5. 基于单片机的贪吃蛇游戏

    绪论 1.1 研究背景与意义 随着社会的发展,人们生活的步调日益加快,越来越多的人加入了全球化的世界. 人们不再拘泥于--,J,块天地,加班,出差成了现代人不可避免的公务.而此时一款可以 随时随地娱乐 ...

  6. FPGA_Verilog学习之旅(3)---VGA贪吃蛇游戏

    文章目录 前言 一.整体设计流程 二.RTL Viewer 三.主要模块功能 1.按键控制模块 2.VGA驱动模块 3.游戏开始模块 4.难度选择模块 5.游戏进行模块 6.游戏结束模块 四.实况展示 ...

  7. 用python自带的tkinter做游戏(一)—— 贪吃蛇 篇

    用python自带的tkinter做游戏(一)-- 贪吃蛇 篇 本人新手,刚自学python满半年,现分享下心得,希望各位老手能指点一二,也希望和我一样的新手能共勉,谢谢~ 大家都知道用python做 ...

  8. 第二章教程16:贪吃蛇

    本次教程内容: 键盘检测函数 队列 记录系统时间 随机数 改变控制台窗口大小 见一叶落,而知三秋至. 虽然还处于能够把控的状态,但现在的map.cpp代码结构已经越来越复杂,对象之间的知识和责任链也越 ...

  9. QT开发实例(一):简单实现一个贪吃蛇游戏

    QT开发实例 提示:本专栏所用版本仅供参考,其他版本也可 库 版本 QT 5.14:下载 源码下载 点击下载 游戏包下载 点击下载 QQ群 点击加群:928357277 开发目录 <b>& ...

最新文章

  1. MATLAB常见语法错误分析及解决办法
  2. Virtual PC,我真的不敢用你!
  3. LESSON 9.4 集成算法的参数空间与网格优化
  4. Linux 磁盘分区、格式化、目录挂载
  5. Python学习笔记:常用内建模块7XML
  6. 《网易编程题》计算糖果
  7. 10种轻量级人脸检测算法大PK
  8. inherits java_JAVA内部类和组合的区别
  9. 协议详解_I2C协议详解
  10. 永恒python配合什么主武器好_学点python吧,别再这么累了,让你轻松实现财富自由...
  11. 靠手速!华为新旗舰今晚发布:价格破万
  12. .NET回归 HTML----超文本标记语言(暂时无图)
  13. strcpy函数的C/C++实现
  14. CSS从入门到精通——文本与字体样式
  15. rpcbind服务没法开启问题
  16. 为什么说Mobileye最辉煌的5年就是落后的5年
  17. python提取停用词_python文本处理 数据挖掘 停用词检索
  18. linux计划任务踩坑
  19. linux命令sm,Linux系统命令和使用技巧8则
  20. nas 软件 性能测试,NAS性能测试器(NAS performance tester)

热门文章

  1. wince下shell 的定制
  2. 如何去脸上的【收获一份爱的礼物】
  3. in 和exists 用法区别
  4. 闪电网络系列——什么是闪电网络?
  5. 微软 Edge 浏览器无法调用 麦克风 原因及解决办法
  6. Java中类和对象的概念
  7. 十进制小数转为二进制小数方法
  8. RBL 列表查询网址
  9. 【论坛精华】个人微信小游戏发布流程
  10. 苹果描述的iPad难道是“四不象”?.