微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于Android的屏幕水雾手机游戏的设计方案

基于Android的屏幕水雾手机游戏的设计方案

时间:02-19 来源:本站整理 点击:

设置。在Android 中,MotionEvent 类在本程序中主要功能是负责实现平衡水滴功能的一些传感器的方法的调用,如On-TouchEvent 方法。

  2.3 关键功能设计

  2.3.1 按触摸屏幕绘制的随笔线

  随笔线的绘制特点:①需要知道坐标信息,以确定绘制到屏幕的哪个位置;②因为其形状和路径不固定,需要提供draw 方法,绘制自身。所以,将这些图形抽象出来,创建一个Drawing 类,图一是抽象后的类图。涂写所用图形扩展自Drawing 类,如果扩展类自身的绘制较为复杂就重写fingerDown ()、fingerUp()等方法,也可添加一些成员变量,在自己构造函数中创建自己需要的数据。"画板"其实是一个View 类,这个View 类的onDraw()是一个Android系统回调函数。有了抽象图形类Drawing 后,在"画板"中就可以只针对Drawing 编程。

  

  图一程序的类关系图

  2.3.2 获取当前的屏幕截图

  Android 手机上有一个叫做FrameBuffer 的设备,图像信息都是通过FrameBuffer 写到手机屏幕上去的。因此可以通过读取此设备中的数据来获取当前正在显示的图像。

  FrameBuffer 对应的设备文件就是/dev/graphics/fb0.因此可以读取屏幕图像数据,其中传入的参数fd 为一个文件描述符。这样就可以把从fb 中读取的屏幕图像信息传递给自己的应用,从而获取手机屏幕信息。

  2.3.3 利用OntouchEvent 触摸监听方法实现触摸涂写

  onTouchEvent 方法在View 类中的定义,并且所有的View 子类全部重写了该方法,应用程序可以通过该方法处理手机屏幕的触摸事件。方法原型为:public boolean onTouchEvent (MotionEventevent)。参数event 为手机屏幕触摸事件封装类的对象,其中封装了该事件的所有信息。该对象会在用户触摸手机屏幕时被创建。该方法的返回值机理与键盘响应事件的相同,同样是当已经完整地处理了该事件且不希望其他回调方法再次处理时返回true,否则返回false.一般以下三种情况的事件全部由onTouchEvent 方法处理,只是三种情况中的动作值不同。屏幕被按下时,MotionEvent.getAction()的值为MotionEvent.ACTION_DOWN; 屏幕被抬起时,MotionEvent.getAction () 的值为MotionEvent.ACTION_UP;触控笔在屏幕上滑动时,MotionEvent.getAction()值为MotionEvent.ACTION_MOVE.

  2.3.4 水滴的平衡效果

  想要实现水滴的平衡效果,就要利用Android内置的重力传感器sensor.目前的安卓手机基本都是竖屏的,因此它的三轴定义中x 轴代表屏幕短边,y 轴代表长边,而对于需要横屏的游戏,屏幕长边处于水平状态,程序就调用系统长边(y 轴)作为方向控制。由于本程序只使用到的加速度传感器的功能应用是定义在二维平面范围内的,所以以屏幕的左上方为原点,箭头指向的方向为正。从-10 到10,以浮点数为等级单位。手机屏幕向上水平放置的时侯,(x,y,z)的值分别为(0,0,10);手机屏幕向下水平放置的时侯,(x,y,z)的值分别为(0,0,-10);手机屏幕向左侧放的时候,(x,y,z)的值分别为(10,0,0);手机竖直向上的时候,(x,y,z) 的值分别为(0,10,0);如此类推,规律就是:朝天的就是正数,朝地的就是负数。利用x,y,z 三个值就可以精确检测手机的运动状态。

  2.4 界面实现效果

  图二至图六是程序运行的一些效果图。

  

  图二水雾填充图

  

  图三水雾写画图

  

  图四平衡水滴图

  

  图五图像储存图

  

  图六Menu 菜单图

  3 结束语

  "屏幕水雾"是基于Android 平台的手机应用开发的游戏软件,软件采用Java 语言开发,开发环境是Eclipse,其主要功能为使屏幕上生成一层水雾图像,可以用手指涂写,以图像的直观方式展现在用户面前。"屏幕水雾"这款手机游戏简单、新颖,符合年轻人的爱好特点。这款软件在实用性上可以再加强,界面可进一步进行优化,更直观、简洁一些。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top