贪吃蛇用滑动控制方向
在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这个方法
贪吃蛇用滑动控制方向相关推荐
- 微信小程序-贪吃蛇开发9 滑动控制与碰撞检测
本系列是作者自学实践过程的记录 本文是关于贪吃蛇的滑动控制 有问题欢迎讨论 目录 一.滑动控制 1.1 设计思想 1.2 代码实现 1.3 效果展示: 1.4 整体赋值 二.setInterval函数 ...
- 重力感应贪吃蛇(C51 MPU6050 8*8LED点阵)
重力感应贪吃蛇(C51 MPU6050 8*8LED点阵) 本文讲述如何从无到有用C51做一个重力感应的贪吃蛇,包括元件选型.原理图PCB绘制和代码编写. 重力感应贪吃蛇(C51 MPU6050 8* ...
- iOS 贪吃蛇单机版的实现
github地址:贪吃蛇小游戏 前言 前天了解到疯狂iOS讲义这本书. 上面有一个手势教学的代码实例:贪吃蛇. 于是找到了它的电子版和源码.进行学习. 做出来的效果就是这样的,可能样子有点丑,但我也不 ...
- matlab cat函数_如何用Matlab编写贪吃蛇游戏?(持续更新)
今后我们实验室的研究重点将会聚焦在"基于游戏的测评"和"教育游戏化"这两个主题上,因此很有必要研究实现"爆款"游戏的一些基本的技术方法.这篇 ...
- 基于单片机的贪吃蛇游戏
绪论 1.1 研究背景与意义 随着社会的发展,人们生活的步调日益加快,越来越多的人加入了全球化的世界. 人们不再拘泥于--,J,块天地,加班,出差成了现代人不可避免的公务.而此时一款可以 随时随地娱乐 ...
- FPGA_Verilog学习之旅(3)---VGA贪吃蛇游戏
文章目录 前言 一.整体设计流程 二.RTL Viewer 三.主要模块功能 1.按键控制模块 2.VGA驱动模块 3.游戏开始模块 4.难度选择模块 5.游戏进行模块 6.游戏结束模块 四.实况展示 ...
- 用python自带的tkinter做游戏(一)—— 贪吃蛇 篇
用python自带的tkinter做游戏(一)-- 贪吃蛇 篇 本人新手,刚自学python满半年,现分享下心得,希望各位老手能指点一二,也希望和我一样的新手能共勉,谢谢~ 大家都知道用python做 ...
- 第二章教程16:贪吃蛇
本次教程内容: 键盘检测函数 队列 记录系统时间 随机数 改变控制台窗口大小 见一叶落,而知三秋至. 虽然还处于能够把控的状态,但现在的map.cpp代码结构已经越来越复杂,对象之间的知识和责任链也越 ...
- QT开发实例(一):简单实现一个贪吃蛇游戏
QT开发实例 提示:本专栏所用版本仅供参考,其他版本也可 库 版本 QT 5.14:下载 源码下载 点击下载 游戏包下载 点击下载 QQ群 点击加群:928357277 开发目录 <b>& ...
最新文章
- MATLAB常见语法错误分析及解决办法
- Virtual PC,我真的不敢用你!
- LESSON 9.4 集成算法的参数空间与网格优化
- Linux 磁盘分区、格式化、目录挂载
- Python学习笔记:常用内建模块7XML
- 《网易编程题》计算糖果
- 10种轻量级人脸检测算法大PK
- inherits java_JAVA内部类和组合的区别
- 协议详解_I2C协议详解
- 永恒python配合什么主武器好_学点python吧,别再这么累了,让你轻松实现财富自由...
- 靠手速!华为新旗舰今晚发布:价格破万
- .NET回归 HTML----超文本标记语言(暂时无图)
- strcpy函数的C/C++实现
- CSS从入门到精通——文本与字体样式
- rpcbind服务没法开启问题
- 为什么说Mobileye最辉煌的5年就是落后的5年
- python提取停用词_python文本处理 数据挖掘 停用词检索
- linux计划任务踩坑
- linux命令sm,Linux系统命令和使用技巧8则
- nas 软件 性能测试,NAS性能测试器(NAS performance tester)