基于Android的手机游戏--左右不分的设计与实现
添加时间:2017/01/13 来源:未知 作者:admin
近年来,智能手机凭借其便于携带、沟通迅捷、功能多样、私密性强等独有优势,已经成为普通民众不可替代的随身工具。其益智、趣味和休闲的特点迎合了消费者的娱乐需要。
以下为本篇论文正文:
【摘要】随着智能手机的普及,各种各样的手机app层出不穷,其中手机游戏也异常火爆。而目前我国智能手机用户的系统大多以Android为主,所以本文设计实现了一款基于Android平台的新的手机游戏--左右不分,并详细阐述了游戏的功能结构、开发过程以及关键技术。
【关键词】Android;手机游戏;左右不分
1游戏开发背景
近年来,智能手机凭借其便于携带、沟通迅捷、功能多样、私密性强等独有优势,已经成为普通民众不可替代的随身工具。其益智、趣味和休闲的特点迎合了消费者的娱乐需要。而如今,人们的学习工作压力逐渐增大,生活节奏加快,大多数人没有足够的时间去休闲娱乐,放松自己。在这种背景下,开发一款简洁而不简单,有创意,既娱乐有趣,又可以锻炼人们某种技能的手机游戏是很符合目前的潮流的。《左右不分》便是在这种情况下设计并开发出来的。
2游戏功能和原型设计
2.1总体功能结构
本游戏主要是靠手指的上下左右滑动来完成游戏的,由经典++模块、道尔顿模块、左右互搏模块、更多以及帮助部分五大模块组成,其中经典++模块由经典模式、百米模式、无极限模式组成,左右互搏模块由经典版、百米版、无极限版组成。游戏需要实现的主要功能有游戏开场动画、道具制造、游戏操作、分数统计4个主要功能。
2.2模块设计及功能说明
经典++模块:分为经典模式、百米模式和无极限模式。经典模式的主要功能是在一定的时间内依照屏幕上的指示统计完成正确滑动的次数。百米模式的主要功能是正确滑动固定的次数来计算所需要花费的时间。无极限模式的主要功能是不受时间的限制,一直玩到玩家出错为止。
左右互搏模块:本模块为横屏,也有三种模式:经典版、百米版和无极限版。功能和经典++模块一样,但是屏幕分为左右两部分,点击开始按钮后,两只手分别依据两部分的指示进行滑动来完成游戏,可以很好地锻炼自己的反应能力,也可以两个人同时玩来进行比赛。
道尔顿模块:图片指示全部都是检测色盲色弱的图片,一共有20次滑动机会,到最后若是错得太多,则会被当成色盲或者色弱,不过若是真的分辨不出来,那就有可能真的是色盲或者色弱了。
3游戏关键技术
3.1所用平台介绍
本系统采用Android SDK和集成ADT的Eclipse开发环境,运行调试环境以Android AVD(即Android虚拟设备)和真机共同完成,这里对软件的安装步骤不作过多赘述。游戏以MVC模式为基础,将显示部分和数据部分分离,这样当更换视图时可以不影响对方,更有利于程序维护。
3.2关键技术介绍
3.2.1动画生成
在本游戏中,大量字体的旋转采用了补间动画来实现,补间动画类位于android.view.animation类库中,其中包含一些常用的动画实现类,如Alpha Animation:透明度渐变效果,Translate Animation:位移渐变,Scale Animation:缩放渐变,Rotate Animation:旋转渐变,Animation Set:组合渐变。另外一小部分动画采用了逐帧动画来实现,Drawable animation可以加载Drawable资源实现帧动画。
3.2.2游戏屏幕自适应
目前市场上有各种各样的手机,而这些手机的分辨率也有所不同,如何在不同分辨率的手机上完美运行游戏,也是我们需要考虑并解决的问题。
在目前的Android版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三个drawable文件夹来存储图片资源,主要目的是为了支持多分辨率。
drawable-hdpi、drawable-mdpi、drawable-ldpi的区别:(1)drawable-hdpi里面存放高分辨率的图片;(2)drawable-mdpi里面存放中等分辨率的图片;(3)drawable-ldpi里面存放低分辨率的图片。系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片,在开发时为了兼容不同平台不同屏幕,需要在各个文件夹根据需求来存放不同分辨率的图片。
3.2.3手势探测器
在Android应用中,经常需要手势滑动操作,比如上下滑动,或左右方向滑动,处理手势滑动通常有两种方法:一种是单独实现set On Touch Listener监听器,另一种是构建手势探测器。本游戏使用的是第二种方法,即手势探测器。Android目前拥有两个不同的类用于手势探测:
(1)Gesture Detector类可以用于探测一般的单点触控手势;
(2)Scale Gesture Detector可以用来探测多点缩放操作手势。
本文开发的游戏主要用的是第一种,通过Gesture Detector类可以识别很多的手势,主要是通过on Touch Event(event)方法完成不同手势的识别,这个类对外提供了两个接口:
On Gesture Listener,On Double Listener,还有一个内部类Simple On Gesture Listener,它是Gesture Detector提供给我们的一个更方便的响应不同手势的类,这个类实现了上述两个接口,通过Gesture Detector的构造方法可以将Simple On Gesture Listener对象传递进去,这样Gesture Detector就能处理不同的手势了。
3.2.4自定义控件
本游戏中用到了自定义控件。开发自定义控件的步骤如下:
(1)了解View的工作原理;
(2)编写继承自View的子类;
(3)为自定义View类增加属性;
(4)绘制控件;
(5)响应用户消息;
(6)自定义回调函数。
Android系统的视图结构的设计采用了组合模式,即View作为所有图形的基类,Viewgroup对View继承扩展为视图容器类。基本操作由三个函数完成:measure()、layout()、draw(),其内部又分别包含了onMeasure()、onLayout()、onDraw()三个子方法。Measure操作主要用于计算视图的大小,它会调用on Measure函数实现自己的计算视图大小的方式,并通过set Measured Dimension(width,height)保存计算结果。Layout操作用于设置在屏幕中显示的位置,该函数中的两个方法set Frame(l,t,r,b)和on Layout()分别保存了子视图在父视图中的具体位置和为View Group类型布局子视图。Draw操作利用前两步得到的参数,将视图显示在屏幕上,从而完成视图绘制工作。
4游戏测试及总结
游戏开发完成后,将apk包安装在手机上进行测试。本游戏本着简洁的原则,在设计上有多种模式,通过对本游戏的安装、卸载及运行中的各项测试,结果表明,本游戏能够很好地在Android手机上流畅地运行,欢迎界面动画,主界面动画,各个模式的功能都基本实现,画面清晰度高,运行流畅,手势响应合理且迅速,UI设计合理,画面简洁而有自己的风格,基本上实现了预定的目标,为其他游戏的设计开发提供参考。
参考文献
[1]李刚。疯狂Android讲义[M].北京:电子工业出版社,2013.
[2]陈咪,刘光灿,张竹娴。基于Android操作系统的手机小游戏开发[J].信息通信,2012(04)。
[3]郭东恩,吴刚。基于android平台的数独游戏设计与实现[J].计算机与数字工程,2012(03)。
[4]曲蕴慧。Android系统下手机游戏的设计与开发[J].电子科技,2013(06)。
[5]申健唯,吴丽。安卓手机游戏的快速开发[J].数字技术与应用,2014.
[6]秦成。基于Android平台的手机游戏的设计与开发[D].云南大学,2015(12)。