基于Android抓老鼠游戏毕业设计论文_第1页
基于Android抓老鼠游戏毕业设计论文_第2页
基于Android抓老鼠游戏毕业设计论文_第3页
基于Android抓老鼠游戏毕业设计论文_第4页
基于Android抓老鼠游戏毕业设计论文_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于Android的“抓住小老鼠”游戏开发电子与信息工程学院 计算机科学与技术专业118532012005 王星 指导教师:赵少卡【摘要】如今随着智能手机的快速普及,智能手机操作系统市场变的越来越受欢迎, Android操作系统更是以83.6%的市场占有率稳居移动操作系统市场之首。因此,在未来的一段时间内,基于Android操作系统的应用软件将仍具有广阔的发展前景。本设计是一款娱乐的益智类游戏,采用面向对象的设计模式,利用Android技术进行开发。游戏主要有设置音效、分享应用、进行游戏、查看排行榜、新手入门等功能。相比传统游戏,游戏玩法新颖,界面美观,更具趣味性。【关键词】Android;游

2、戏;APP目录1.背景与意义11.1.游戏开发背景11.1.1.游戏产业的发展11.1.2. Android游戏的发展11.2.游戏开发意义12.系统分析22.1.可行性分析22.2.需求分析23.概要设计33.1.系统主流程图设计33.2.功能模块设计34.详细设计44.1.文件结构与用途44.2.游戏主要类分析与设计64.2.1.主界面64.2.2.游戏界面74.2.3.帮助界面104.2.4. SharedPreferences类和record界面104.2.5. PlayMusic类125.系统测试125.1.系统开发工具及运行测试环境125.2.系统测试结果及运行截图126.总结与展

3、望146.1.系统总结146.2.系统展望14致谢15参考文献15161. 背景与意义 1.1. 游戏开发背景1.1.1. 游戏产业的发展游戏产业作为文化产业的一部分,属于我国新兴的高新技术产业之一。游戏产业本身虽然属于互动数字内容产业也属于休闲产业,同时又是一个横跨互联网、计算机、软件、消费电子等诸多领域的综合体。游戏产业的渗透力巨大,影响着相当多的相关产业。国外的游戏产业已日趋成熟,而中国的游戏产业又处于一个什么样的阶段呢?虽然目前我国游戏产业的发展仍会受到许多因素,例如行业自身的不成熟、国家在IT方面人才培养计划的不完善等等;但另一方面,“游戏”这一概念已经慢慢渗透到民众的日常生活中,成

4、为民众无法摆脱的休闲活动。例如现在在电脑客户端最流行的“英雄联盟”,还有网页版的一些游戏“传奇霸业”,以及前段时间流行的手机端的“2048”等等。即使是一些小游戏也不乏精品,像大名鼎鼎的TOM猫,操控简单,但趣味性十足,充分利用了手机本身的特性,而且也注意到了通过手机联系人实现的好友分享。凡此种种,相较传统的J2ME游戏,无论是在表现力上,还是在开发效率、可移植性上,都对手机游戏注入了新的理念,重要的是为用户带来了全方位的游戏体验。在可玩性和流行性上都占有优势地位。1.1.2. Android游戏的发展Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于L

5、inux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。自从Android系统公布以来,发展迅速,版本也有最初的Android1.0 更新至如今Android4.4,由于Android系统的开源,使得它成为了商界的宠儿,但是几年以前,由于Android版本更新的速度过快,导致存在兼容性的问题,因此没有得到大牌游戏厂商的快速跟进,但随着Android版本的稳定以及游戏产业的蓬勃发展,Gameloft、Gamevil、EA等大牌厂商开始进入Android平台,带来了高端的游戏体验,同时,各个游戏厂家也正在积极的研发基于Android平台的游戏手机。无论是软件还是硬件

6、,种种迹象表明,Android平台的游戏正在进入快速的发展时期。移动设备的随身性使是休闲小游戏将得到快速的发展。移动设备对分散时间的利用促进了游戏向时间片化发展,即一个游戏可以随时开始,随时结束,充分利用用户分散的时间片来运行。即使在其他家用电子设备上,休闲类的小游戏也可以为以家庭为单位的用户带来更多的乐趣,相信不久的将来,游戏可能成为推动手机硬件性能提升的主要动力,也会是手机娱乐特性最好的体现之一。1.2. 游戏开发意义现今,各种大大小小的Android游戏都十分流行,按内容大概可分为:角色扮演类、格斗类、冒险类、体育竞技类、棋牌类、电影改版类、益智类、模拟类等等。但是传统游戏创意的匮乏,大

7、多游戏都只是一味的跟风,看到某个游戏成功赢得市场,便改换场景风格,人物造型、故事背景等,其游戏核心一沉不变的思维理念会使得玩家产生审美疲劳。此次设计属于益智类单机游戏,能够在任何环境、任何时间娱乐心身、放松心情。 此外,在开发过程中也会遇到各种技术性的问题,比如开发环境的搭建,各种Android版本的兼容问题等等,通过实际动手开发本游戏,可以在实践当中充分的理解和掌握相关技术的使用。2. 系统分析2.1. 可行性分析从“俄罗期方块”到“贪吃蛇”,从“2048”到“神庙逃亡”,再到“消消乐”,随着科技的进步,游戏也不局限与游戏机,手机的普及,使得手机游戏得以推广,再加之快节奏,压力大的生活,让人

8、们对于手机游戏情有独钟。从游戏的种类来讲,越来越丰富,从游戏的创新性、可玩性来讲,也更新颖,更有趣,更好玩。本游戏设计新颖,玩法简单,易操作,相信能被大众接受,得到众多玩家的认同。下面从三方面分析其可行性:(1) 技术可行性:本游戏是采用Eclipse加ADT,加Android SDK进行开发,是当下比较流行的Android app集成开发环境,虽然Google公司最新公布了专业用于Android app开发的IDEAndroid Studio,但是因为该软件还不稳定,所以暂时不用它。此外,本人在之前有学习Android app开发,其中涉及的Android四大组件:activity、serv

9、ice、content provider、broadcast receiver;五大布局: LinearLayout (线性布局),FrameLayout(框架布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)等基本技术都比较了解,完全有能力独立开发本游戏。(2) 经济可行性:鉴于本游戏只是用作本人的毕业设计,本人目前并不具备企业级项目开发经验,系统的整体UI设计和逻辑功能还有待完善,本项目并不能真正用作上线产品,经济效益不作为重点分析。如果游戏发布之后,用户较多,可以开发后续版本,拓展游戏模块,想商业化发展,在游戏中

10、通过植入广告等方式或得经济效益。(3) 操作可行性:本游戏界面简洁美观,游戏界面采用SurfaceView控件,反应灵敏,延时较短,操作简单,容易上手,兼容Android2.3及以上版本。2.2. 需求分析本游戏是一个简单的益智类游戏,与以往的2048、消消乐等小游戏类似,旨在让玩家在游戏过程中,感觉到游戏的创新性,可玩性,放松心情,愉悦身心。游戏内容及其基本规则如下:(1) 在一个10*10的圆形矩阵中,100个圆被着色,其中15个橙色的圆,代表路障,随机着色;位于中心的圆着色为红色,代表唯一可移动的圆,剩下的圆着灰色,灰色代表非路障。(2) 奇数行和偶数行的圆交错排列,相差半个圆的位置。这

11、样红色的圆可以向六个方向移动。每次只能移动相邻位置,且只能移动一步。(3) 点击灰色圆,使其颜色变为橙色,成为路障,通过这种方式将红色圆的六个方向都设置为路障,玩家即可获得胜利。(4) 若在 (3) 之前,红色圆移动到了整个圆形矩阵边缘,则玩家输。游戏整体的设想如以下描述:启动游戏后会有一个动画,动画结束后会有一个简单的总页面,上面有四个按钮和一个checkbox控件,四个按钮分别实现四个功能,分别是:(1) 点击第一个按钮,进入游戏主界面。(2) 点击第二个按钮,显示历史排行榜。(3) 点击第三个按钮,实现分享功能。(4) 点击第四个按钮,帮助按钮,讲解游戏规则。另外的一个checkbox控

12、件用来控制游戏中是否有音效效果。从上面的描述中可以基本了解软件的功能需求:(1) 设计两个主要的Activity页面,一个是游戏界面,用于游戏;一个是主界面,用来与用户交互。(2) 将用户的成绩保存在本地,游戏结束时,用来与本地成绩对比,更新排行榜。(3) 如果用户觉得游戏比较有趣,可以通过一键分享该应用的下载地址。(4) 要另外设置一个Activity界面,用来讲解游戏的规则。(5) 准备音效的素材,并且在游戏中玩家可以设置是否有音效。3. 概要设计3.1. 系统主流程图设计本游戏整体实现的流程图如图3-1所示:运行游戏进入游戏主界面开始游戏查看成绩分享应用查看帮助设置音效返回图3-1系统主

13、流程图3.2. 功能模块设计本游戏的主要功能模块分为两大模块,即游戏模块和其它模块。具体详情如图3-2所示:显示得分游戏模块抓住小老鼠游戏其它模块进行游戏查看帮助更新记录分享应用音效设置图3-2 系统功能模块图(1) 游戏模块:游戏模块分为两个部分,一个部分是用来及时更新用户成绩的,记录用户在每一次操作后所用的步数,将其同步显示到游戏界面上;再一部分便是用户参与人机交互的主游戏界面,直接参与游戏。游戏成功会将成绩与过往记录对比,跟新记录。失败弹出窗口,提示重新开始游戏或退出。(2) 其它模块:其它模块主要包括四个功能:查看帮助:对于第一次接触本游戏系统的人,对于游戏的规则和主义事项不是很了解,

14、可以通过这个功能查看帮助,只需要在游戏主界面点击带有问号的按钮即可。更新记录:系统对于用户的最好成绩会记录下来,所以在每次游戏成功之后,会将最新的成绩与过往的成绩比较,如果最新的成绩好,那么会替换过往成绩,若游戏失败则不进行游戏最好成绩记录的更新,对于还没进行游戏的玩家,直接查看记录,会提示“还未进行游戏,请先进行游!”分享应用:若玩家想和好友分享这款游戏,可以通过分享功能将该游戏应用的下载地址通过一些主流的社交媒体,比如QQ,微信,微博等分享出去。音效设置:为了增加游戏的趣味性,游戏中增加了音效,不过同时考虑到用户体验,也增加了选项,用户可以自己选择是否在游戏总有音效。4. 详细设计4.1.

15、 文件结构与用途 图4-1 应用程序文件结构图在程序开发阶段,首先确定“基于Android的抓住小老鼠游戏”的工程名为mouse,因为是以猫捉老鼠的故事为载体,所以取这个名称,据程序模块设计的内容,建立mouse工程。mouse工程源代码的结构如上图4-1所示。下面对文件名称及其作用做具体说明。首先是src目录,Android的源码,所有的java文件都保存这个目录下,每个文件的功能如表4-1所示。表4-1 mouse工程源码文件用途说明包 名 称文 件 名说 明com.example.fonttextview_one.java自定义的一个textview控件com.example.fontt

16、extview.java自定义的一个textview控件com.example.mouseDot.java定义每个圆的属性和方法com.example.mouseGame.java游戏界面的Activitycom.example.mouseHelp.java帮助界面的Activitycom.example.mouseMain.java系统主界面的Activitycom.example.mousePlayground.java自定义的SurfaceView控件,被游戏界面的activity调用。com.example.mouseRecord.java显示以往玩家的最好成绩。com.example

17、.musicPlayMusic.java用来播放音乐,设置音效。Android的资源文件都保存在/res的子目录中,并且为每个资源分配一个唯一的资源ID,将资源ID和文件名按静态变量的方式一一对应,生成R.java文件,保存在/mouse/gen/目录下的com.example.mouse包中,供编程时调用。其中、/res/anim目录中保存的是产生动画效果的XML文件,/res/drawable/目录中保存的是图像文件,/res/values目录中保存的是用来自定义字符串和颜色的文件,/res/xml目录中保存的是XML格式的数据文件,/res/raw目录中保存存放通用的文件,不会被编译成二

18、进制文件,按原样复制到设备上,本游戏中存放的是音乐文件。具体每个资源文件的用途可以参看表4-2:表4-2 mouse工程资源源码文件用途说明资源目录文 件 名说 明animslide_from_bottom.xml画面从底部弹出动画效果(从上至下)slide_out_bottom.xml画面从底部淡出动画效果(从下至上)drawable-mdpiaccess.png access1.png access_button.xml进入游戏、查看排行榜、进入帮助页面、分享应用这四个按钮和设置音效一个checkbox五个控件的背景图片和动画(判断是否或得焦点)介绍游戏规则的图片rank .png ran

19、k1 .pngrank_button.xmlhelp.png help1.pnghelp_button.xmlshare .png share1 .pngshare_button.xmlmusic.png music1.pngmusic_button.xmlview1.jpg view2.jpg view3.jpg介绍游戏规则的图片layoutmain.xml主界面布局文件game.xml游戏界面的布局文件help.xml帮助界面的布局文件record.xml显示记录的界面布局文件item01.xml item02.xml item03.xml在介绍游戏规则时,帮助界面的适配器加载事需使用的界

20、面布局文件。rawfail.ogg游戏失败时播放init.mp3重新开始游戏时播放move.wav每点击一次屏幕播放win.wav游戏取得胜利时播放 valuesdimens.xml设置手机屏幕margin大小strings.xml保存字符串的XML的文件,用于国际化。styles.xml设置游戏基本的风格。fontgim.ttf字体,用于自定义的控件textview中nom.TTCAndroidManifest.xml配置应用权限和activity4.2. 游戏主要类分析与设计4.2.1. 主界面Main.java主界面类,继承自activity,实现了OnClickListener和OnC

21、heckedChangeListener两个接口,引用的布局文件是main.xml,主要实现的功能是分两个:(1) 展示开始游戏时的动画。首先设置首页所有控件默认为不可见,然后通过系统API获得一个AlphaAnimation对象,该对象是设置淡入淡出动画的对象,接着通过findViewById(R.id.load_image)的方法获得首页图片loadView,将图片和动画绑定起来,并且为该动画设置监听器,监听动画结束,当动画结束时,再将首页所有控件设置为可见。这样就实现了进入应用时的动画效果。(图4-2)设置首页控件不可见得到动画对象得到图片对象绑定设置动画监听器设置首页控件可见事件发生图

22、4-2 首页动画实现流程图部分核心代码如下:/ 得到加载动画控件loadView = (ImageView) findViewById(R.id.load_image);/ 设置透明动画的渐变效果AlphaAnimation animation = new AlphaAnimation(0.2f, 1.0f);/ 设置动画的时间animation.setDuration(1000);/ 关联组件和动画loadView.setAnimation(animation);(2) 在动画结束的时候,将进入游戏,设置音效,查看成绩,分享应用,查看帮助五个功能的入口集成在一个界面上,为他们分别设置监听器。

23、监听事件发生,触发对用事件,实现对应的功能。首先通过findViewById(R.id)获得首页的五个控件,分别是四个button和一个checkbox,然后为他们绑定点击监听事件和选项改变时的监听事件,当相应的事件发生,触发相应操作。(图4-3)获得控件点击选项监听有音效无音效点击监听查看记录进入游戏查看帮助分享应用music_cbrank_btlogin_bthelp_btshare_bt是否勾选图4-3 首页功能实现流程图部分核心代码如下:public void onAnimationEnd(Animation animation) / TODO Auto-generated metho

24、d stub/ 设置开始按钮的监听器login_bt = (ImageButton) findViewById(R.id.login_bt);login_bt.setVisibility(1);login_bt.setOnClickListener(Main.this);/ 设置排行榜按钮、帮助按钮、分享按钮的监听器./ 设置CheckBox 监听器music_cb = (CheckBox) findViewById(R.id.music_cb);music_cb.setVisibility(1);music_cb.setOnCheckedChangeListener(Main.this);S

25、tring music_set = sp.getString("music_set", "on");if (music_set.equals("on") music_cb.setChecked(true); else music_cb.setChecked(false);4.2.2. 游戏界面Game.java游戏界面类,同样继承自activity,引用的布局文件是game.xml,布局文件中有两个控件,一个是textview,用来实时展示玩家游戏所用步数,另外的一个控件Playground是自定义的,继承自surfaceview,这

26、个控件尤其重要,因为所有的游戏逻辑都定义在了这个控件中。游戏界面也是有两个功能:(1) 展示玩家成绩,即花了几步围住了小老鼠。展示成绩的功能涉及到两个类,一个是Game.java,另外一个是Playground.java。首相将Game.java设计成一个单态模式的类,对外提供静态的getGame()方法,这样为外界提供该类唯一的一个实例,确保成绩显示的正确;显示游戏得分的控件textview取名为score_tv,显示得分的方法showScore(String text)放在Game.java中,在得到Game类的实例之后,便可以调用该方法;在Playground类中有个move()方法,会

27、调用onTouch()方法,每次触摸屏幕,红色圆就会移动一步,计数器step就会加1,然后调用个getGame().showScore(step);便可以把成绩显示在屏幕上。(图4-4)调用showScore(step) text)getGame()Game类onTouch()move()step+Playground类包含调用包含调用图4-4 展示成绩功能实现流程图部分核心代码如下:/用来展示分数的tvprivate TextView score_tv = null; Override protected void onCreate(Bundle savedInstanceState) su

28、per.onCreate(savedInstanceState); setContentView(R.layout.game); playground = (Playground)findViewById(R.id.playground); score_tv = (TextView) findViewById(R.id.score_tv); /展示分数,在playground控件中调用 public void showScore(String text) score_tv.setText(text);(2) 实现游戏主要逻辑。游戏的逻辑全部定义在playground控件中,其中主要的变量及其方

29、法的功能用途,请参看表4-3:表4-3 mouse工程surface控件详解变量名或方法名说 明public Playground(Context context, AttributeSet attrs)Playground构造方法 public void initGame()初始化游戏public void redraw()重新绘制游戏界面public boolean onTouch(View arg0, MotionEvent e)实现监听事件接口private void MoveTo (Dot one)红色圆移动之后的处理private void move()红色圆移动的方法(核心)pr

30、ivate Dot getNeighbour(Dot one, int dir)得到相邻留个方向的圆private int getDistance(Dot one, int dir)返回固定方向的距离大小private boolean isAtEdge(Dot d)判断红色圆是否移动到边界private void lose()游戏失败private void win()游戏胜利private void record(int step)判断是否破纪录private Dot matrix1010 = null记录点阵private Dot mouse = null老鼠(红色圆)private st

31、atic int step = 0记录游戏所用步数游戏开始,在构造方法Playground(Context context, AttributeSet attrs)中调用initGame(),初始化游戏界面;然后为Playground()类设置OnTouchListener监听器,实现该接口里面的OnTouch()方法;当点击屏幕时,在判断点击位置后,调用move()方法,移动“小老鼠”的位置,对于“小老鼠”下一步朝哪个方向移动,便是本游戏的核心算法,也是重点和难点:首先通过调用getDistance(Dot one, int dir)方法,得到“小老鼠”六个方向中距离最近的可用路径。如果六个

32、方向距离都为-1,则表示周围全是路障,游戏胜利,调用win()方法,在该方法中会调用record()来判断是否要更新最好成绩。然后调用Dot getNeighbour(Dot one, int dir)方法,得到距离最近那条路径上,与“小老鼠”相邻的那个圆,设置它的状态为红色,表示移动到此处。移动之后调用redraw()重新绘制游戏界面,并且调用isAtEdge(Dot d)方法,判断“小老鼠”是否移动到了点阵Dot matrix1010的边界处,如果是,调用lose()方法,如果不是,则继续。(参见图4-5)是初始化游戏initGame ()点击屏幕,触发点击事件小老鼠移动 move()距离

33、都为-1getDistance()游戏胜利win()移动getNeighbour()计算六个方向的距离朝六个方向中最短距离移动重绘界面redraw()是否游戏失败lose()否已经到边界isAtEdge()图4-5 游戏逻辑实现流程图4.2.3. 帮助界面Help.java帮助界面类,继承自activity,引用的布局文件是help.xml,里面只有一个控件ViewPager,该空间可以利用适配器装载多张界面,实现滑动切换的想过。本界面实现的功能只有一个,就是利用滚动的图片介绍游戏的规则。首先通过资源id获得需要展示的三张图片view1、view2、view3,并且将他们存储在一个数组列表Ar

34、rayList<View>里面,然后在加载页面是通过PagerAdapter适配器中的getCount()方法获得所需当前窗体界面数,然后将ViewPager控件和适配器绑定,即可实现三个界面的滑动。(图4-6)绑定适配器PagerAdapter显示成功ViewPager装载装入数组View1View1View1ArrayList适配 图4-6 帮助界面实现流程图部分核心代码如下:/ 查找布局文件用LayoutInflater.inflateLayoutInflater inflater = getLayoutInflater();/ 将view装入数组pageview = new

35、 ArrayList<View>();pageview.add(view1);pageview.add(view2);pageview.add(view3);/ 数据适配器PagerAdapter mPagerAdapter = new PagerAdapter() / 获取所需当前窗体界面数public int getCount() / TODO Auto-generated method stubreturn pageview.size();/ 绑定适配器viewPager.setAdapter(mPagerAdapter);4.2.4. SharedPreferences类和

36、record界面在Android中提供了文件,SQLite、还有Content provider等对数据的处理方式,因为本游戏系统是简单的单机游戏,除了音效设置和最高纪录需要保存外,并没有其余数据需要保存,所以没有必要用数据库,这里我们用Android API提供给我们的一个类叫SharedPreferences,相比以上三种,它的存取性能更加优化,也更加方便,对于类似参数的数据是首选。对于SharedPreferences的操作,首先通过上下文content调用函数getSharedPreferences(name, mode)来获得SharedPreferences,第一个参数是文件名,第

37、二个参数是访问模式,得到SharedPreferences后,再调用.edit()方法,得到SharedPreferences编辑器,便可以调用putString等方法向里面写入数据了,数据以键值对的方式保存,写入数据后,必须调用mit()方法,写入的数据才可以提交上去,类似数据库。取数据时,调用getString等对应方法。(核心代码如下)public SharedPreferences sp = null; / 得到SharedPreferences,命名为configsp = getSharedPreferences("config", Context.MODE_PR

38、IVATE);/ 利用Editor向sp中写入数据/ 得到sharedpreferces编辑器;Editor editor = sp.edit();if (isChecked) / 将选中状态写入sharedpreference。设置music = on;editor.putString("music_set", "on");/ 类似于事务 ,保证所有参数同时提交mit(); else editor.putString("music_set", "off");mit();Record.java查看成绩界面,继承自a

39、ctivity,引用的控件很简单是只有一个textview,为了让界面美观些,重写了textview控件,将它的字体换成了自己预先存放在/assert/font目录下的gim.ttf,显示的数据是从上文中提到的SharedPreferences中取出来的。(图4-7)显示记录record.xml界面跳转查询记录从SharedPreferences点击查看成绩按钮否是否有记录是提示暂无记录图4-7 记录界面实现流程图(record.xml部分代码如下)<com.example.font.textview android:layout_width="wrap_content&quo

40、t; android:layout_height="wrap_content" android:layout_gravity="" android:text="最高纪录:" android:textSize="40sp"/>4.2.5. PlayMusic类该类主要用于加载音乐,播放音乐,里面有initSoundPool()和play(int sound, int loop)两个方法,前者用来初始化音乐池,后者用来播放音乐。(部分核心代码如下)/ maxStream : 该参数是定义最多能同时播放的多少音效

41、,音频类型,音频质量soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);/ 加载音频文件musicHashMap = new HashMap<Integer, Integer>();musicHashMap.put(MUSIC_MOVE, soundPool.load(mContext, R.raw.move, 1);musicHashMap.put(MUSIC_WIN, soundPool.load(mContext, R.raw.win, 1);musicHashMap.put(MUSIC_FAIL, sound

42、Pool.load(mContext, R.raw.fail, 1);musicHashMap.put(MUSIC_INIT, soundPool.load(mContext, R.raw.init, 1);/ 根据musicHashMap.get(sound)来获取-利用load方法加载资源文件返回的id值currStreamId = soundPool.play(musicHashMap.get(sound), volume,volume, 1, loop, 1.0f);5. 系统测试5.1. 系统开发工具及运行测试环境(1) 开发工具:Eclipse 4.2.1、ADT和Android

43、SDK、Java开发工具包JDK 1.8.0_51(2) 项目测试环境: 小米2A;Android 4.4.25.2. 系统测试结果及运行截图至此已经完成了mouse工程的代码编写工作,在这一章节对mouse工程进行测试,结果如下:(1) 连接真机将小米手机通过数据线连接至电脑,同时勾选允许USB调试。打开eclipse中的DDMS,重启adb,即可将手机连接至电脑,进行测试(2) 启动mouse应用程序在工程名mouse上点右键,然后选择“Run As”,然后选择“Android Application”。手机上就会安装该应用。(3) 主界面测试:包括四个按钮的动画和音效的设置都正常,如图5

44、-1。图5-1主界面测试图(4) 游戏界面测试:包括初始化游戏界面,游戏输和赢时的界面 如图5-2图5-2游戏界面测试图(5) 帮助界面的测试:三个页面正常显示,动画正常,画面切换流畅 如图5-3图5-3帮助界面的测试(6) 分享界面和查看记录界面的测试:记录正常显示,分享功能正常。 如图5-4图5-4 分享界面和查看记录界面测试图6. 总结与展望6.1. 系统总结经过数个月的努力,Android平台的抓住小老鼠游戏终于完成了。首先就对于系统而言,整体画面还是比较活泼鲜艳的,功能也基本比较齐全,比如实现了分享,查看规则,设置音效等等,尤其是在帮助界面利用ViewPager控件实现的滚动效果,相

45、对于用枯燥的文字描述,更加形象生动,易于理解;此外,在游戏界面game.xml中自定义的Playground继承自SurfaceView,界面全部是画笔绘制出来的,且不占用UI主线程,使得响应时间变短,游戏变的流畅;还有对于常用的设置Android为我们提供了SharedPreference API用来储存和共享,我们不需要像以前那样单独自己定义一个文件进行存取,方便实用;而且游戏本身也十分有趣,符合当下人们休闲误乐的需求。就个人而言,通过本次毕业设计,不仅巩固了旧的知识,比如Android环境的搭建、Intent、Activity、等等,也更加深入的了解了Android的设计模式和UI线程,

46、也希望自己能多多实践,在实践中成长,提高自己的编程意识和编程水平。6.2. 系统展望虽然,这款游戏目前运行良好,但是我认为在代码的健壮性方面做的还不够好,在整个工程的构思方面也有些不足,使得代码有些冗余、臃肿;此外,游戏的玩法比较单一,还需要丰富,下一步开发可能会着重于游戏环节的丰富性;并且,本系统是一款单机游戏,没有联网,如果后期二次开发出的游戏比较丰富的话,可以考虑增加用户注册模块,由单机版升级至联网版;最后,如果游戏反响不错,可以尝试向网页版,iOS系统等不同平台推广开发,做成一个品牌。致谢 本项目的圆满完成很大程度上是依靠自己的坚持不懈与努力的结果,但同时也少不了老师的指导和同学们的帮

47、助。我要感谢很多人,因为正是在他们的帮助下,我才可以顺利的完成了毕业设计。首先,我要感谢我的指导老师,他是个很负责任的老师,他对我进行了无私的指导和帮助,在作品设计上帮我理清了一些设计思路,在论文设计上有悉心的帮我进行论文的修改。指导老师非常耐心、很负责地定期检查毕业设计进度,让我们能够如期完成任务。真心感谢我的指导老师。其次,我要感谢我的同学,在我毕业设计制作过程中遇到困难时,他们热情帮助,给予我很多启发和指导。我们相互探讨,共同进步,这真是一件很愉快又难忘的事情。 再次,我要感谢学校的全体老师,感谢你们教给我专业知识和做人的道理。由于本人的学术水平暂时相对有限,因此所作的论文难免有不足之处,故此恳请各位老师和学友批评和指正并不吝赐教,最后再次感谢老师和同学们,谢谢你们的热心帮助和指教!参考文献1 传智播客高教产品研发部.Java基础入门M.北京:清华大学出版社,2014.2 孙更新 宾晟 吕婕. Java毕业设计指南与项目实践 M. 北京:科技出版社,2007.3 李刚. 疯狂 Android 讲义M. 北京:电子工业出版社,2013:25-42. 4 王向辉,张国

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论