IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 【Android Studio】小游戏 | 实现两个小动物随手指移动 -> 正文阅读

[移动开发]【Android Studio】小游戏 | 实现两个小动物随手指移动

注:实验环境 Android studio 2021.2.1

1、具体说明

在本例子中,以两个小动物为例,这两个小动物为自定义的view,可以根据点击位置实时更改其位置。

1.1、首先就是触摸监听事件的设置。

setOnTouchListener中的OnTouch方法。
该方法只要有手在屏幕上就会调用,比如按下,滑动,抬起,会时刻调用该函数的。

1.2、屏幕操作

屏幕操作在framelayout布局中的的传递顺序:
framelayout布局是分层的,每层只有一个控件。
假如该framelayout上有多层,每次对屏幕的操作会从顶层开始向下判断,如果其中某一层的onTouch 方法return true,那么下面的层将不会接收到这些操作事件,也就是下面层对应的onTouch方法不会被调用。只有上层的返回false,底层的才能接收到屏幕事件。

1.3、对于函数:public boolean onTouch(View view, MotionEvent motionEvent)

  • motionEvent.getAction() //获取状态值,就是上面的action_xx
  • motionEvent.getX()//获取按下的x坐标
  • motionEvent.getY()//获取按下的y坐标
  • 可以看到其形参有一个motionEvent,其就是当用户对屏幕进行操作时的操作类型,比如我们按屏幕滑动时,分为三个步骤大概,比如按下一瞬间ACTION_DOWN,按下后的滑动ACTION_MOVE,以及抬起ACTION_UP。我们可以通过motionEvent.getAction()函数来获得此事件。
  • 手只要没离开屏幕,ontouch方法会一直不停的调用。
  • 在ontouch中设置一个switch()对该值进行判断。每次调用该方法都会触发一次判断。
    综上所述,要控制framelayout中,多层控件的触摸就变得非常清晰了。

1.4、判断有没有按到该图片

利用ACTION_DOWN在按下的一瞬间才会被判断的性质,设置两个变量记录下初始的按压位置,可以通过motionEvent.getX(),motionEvent.getY()两个函数获得该位置。如果该位置与该对象的位置相差较为大的时候,就可以认为该对象没有被点击。可以设置一个全局变量,canmove,若判断成功则canmove=true,判断失败则继续false。
· 手指滑动时的判断:当手指在屏幕上滑动时,motionEvent.getAction()返回的状态为ACTION_MOVE,此时如果通过canmove判断是在对目前图片进行操作,则可以进行一些位置的更新操作,操作完成后根据具体情况判断需不需要将事件向下层传递,本次实验显然不用向下层传递
· 抬起时canmove的恢复:利用ACTION_UP只有抬起时才会被判断到,如果canmove为true则恢复为false;
请添加图片描述

2、文件结构:

请添加图片描述

请添加图片描述

3、演示

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

4.源代码

https://github.com/xinyangwy/Android_game
(含有build、release文件夹,约80多M)

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:34:46  更:2022-07-17 16:39:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 2:46:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码