基于Android益智拼图游戏设计毕业设计.docx
- 文档编号:4902999
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:130
- 大小:393.16KB
基于Android益智拼图游戏设计毕业设计.docx
《基于Android益智拼图游戏设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于Android益智拼图游戏设计毕业设计.docx(130页珍藏版)》请在冰豆网上搜索。
基于Android益智拼图游戏设计毕业设计
毕业论文声明
本人郑重声明:
1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。
除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。
对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。
本人完全意识到本声明的法律结果由本人承担。
2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。
本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。
3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。
4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。
论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。
论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。
学位论文作者(签名):
年月
关于毕业论文使用授权的声明
本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。
本人完全了解大学有关保存,使用毕业论文的规定。
同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。
本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。
如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。
本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。
本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:
按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入学校有关数据库和收录到《中国学位论文全文数据库》进行信息服务。
在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。
论文作者签名:
日期:
指导教师签名:
日期:
毕业论文
设计(论文)题目:
基于Android益智拼图游戏设计
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
基于Android益智拼图游戏设计
摘要
随着移动设备的日益普及,使用Android技术开发手机软件受到越来越多人的青睐。
在此背景下,本课题开发了一款Android平台下的手机游戏——益智拼图。
本文首先对Android的研究背景,系统架构以及开发环境进行介绍,然后就玩家对游戏的需求进行一定的分析,最后运用Android技术实现拼图游戏的开发,并合理布局游戏界面,使游戏界面更加美观和人性化,实现了游戏的基本功能,最终可以让玩家享受拼图游戏的乐趣。
关键词:
Android;拼图游戏;Activity;架构
ThedevelopmentandfeaturesofAndroid
Abstract
Keywords:
Android;Jigsawpuzzlegame;Activity;sturcture
1绪论
1.1课题开发的背景
随着嵌入式技术的发展,手持终端设备也迅速发展起来,目前,全球手机用户数已超过了PC机用户数,其中智能手机的比例越来越高。
智能手机是指像电脑一样可以通过下载、安装软件来拓展基本功能的手机,一般具有智能手机操作系统。
相较于非智能手机,它功能更强,处理速度更快。
基于Linux的Android手机操作系统,由于具有开源、免费的特性,迅速得到广大爱好者及厂商的支持。
目前,移动应用软件中的手机游戏开发是一项非常热门的技术。
Android系统对第三方软件是开放的,这促进了第三方软件的发展。
Android系统以Linux2.6为核心,其安全机制比较完善,增强了手机使用的安全性。
Android平台已经形成由Google牵头,OHA组织参与,系统支持商和服务供应商完善搭配的运作机制,为Android平台的快速发展提供了坚实的基础。
由于Android构建在开源代码的框架之上,并且提供了强大的SDK库和开放的理念,所以它为广大的没有任何移动应用程序开发经验的新手开辟了一条开发完美移动应用程序的康庄大道。
而富有经验的移动开发人员现在也可以方便地扩展到Android平台上来,利用它独特的功能来改进现有产品或者开发其他新颖产品。
1.2课题意义
Android软件在一两年的时间内已经迅速发展,在各类型应用系统中都有令用户满意的成果,本课题研究的就是基于此背景下Android手机的一款益智拼图游戏。
通过该游戏的设计,将自己学到的Java,Android方面的理论知识应用于实践,提高自己的动手能力。
在设计的过程中,不断的修补知识方面的漏洞,加深自己对程序设计的理解,为将来从事软件开发事业打下基础。
2Android架构与开发平台搭建
2.1Android的系统架构
Android的系统架构和其操作系统一样,采用了分层的架构。
从图2.1中可以看出,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux核心层。
图2.1Android系统架构图
(1)应用程序
Android会同一系列核心应用程序包一起发布,该应用程序包包括Email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。
所有的应用程序都是使用JAVA语言编写的。
(2)应用程序框架
开发人员也可以完全访问核心应用程序所使用的API框架。
该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。
同样,该应用程序重用机制也使用户可以方便的替换程序组件。
隐藏在每个应用后面的是一系列的服务和系统,其中包括;
丰富而又可扩展的视图(Views):
可以用来构建应用程序,它包括列表(lists),网格(grids),文本框(textboxes),按钮(buttons),甚至可嵌入的web浏览器。
内容提供器(ContentProviders):
使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。
资源管理器(ResourceManager):
提供非代码资源的访问,如本地字符串,图形,和布局文件(layoutfiles)。
通知管理器(NotificationManager):
使得应用程序可以在状态栏中显示自定义的提示信息。
活动管理器(ActivityManager):
用来管理应用程序生命周期并提供常用的导航回退功能。
(3)系统运行库
1)程序库
Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。
它们通过Android应用程序框架为开发者提供服务。
以下是一些核心库:
系统C库:
一个从BSD继承来的标准C系统函数库(libc),它是专门为基于embeddedlinux的设备定制的。
媒体库:
基于PacketVideoOpenCORE,该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。
编码格式包括MPEG4,H.264,MP3,AAC,AMR,JPG,PNG。
SurfaceManager:
对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。
LibWebCore:
一个最新web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。
SGL:
底层的2D图形引擎。
3Dlibraries:
基于OpenGLES1.0APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。
FreeType:
位图(bitmap)和矢量(vector)字体显示。
SQLite:
一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。
2)Android运行库
Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。
每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。
Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。
Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。
同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK的"dx"工具转化成.dex格式由虚拟机执行。
Dalvik虚拟机依赖于Linux内核的一些功能,比如线程机制和底层内存管理机制。
(4)Linux内核
Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。
Linux内核也同时作为硬件和软件栈之间的抽象层。
2.2Window下Android开发环境的搭建
为了在PC主机上得到Android的开发环境,我们选择在Windows操作系统中进行对Android开发环境的搭建,具体步骤如下:
(1)JDK安装
首先下载JDK,按照提示安装成功后,最重要的是进行环境变量的配置,步骤如下:
我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量:
Java_HOME值为:
C:
\ProgramFiles\Java\jdk1.6.0_20(安装JDK的目录)
CLASSPATH值为:
.;%Java_HOME%lib\tools.jar;%Java_HOME%\lib\dt.jar;%Java_HOME%\bin;
Path值:
添加C:
\ProgramFiles\Java\jdk1.6.0_20\bin;
(2)Eclipse安装可下载一个绿色版的Eclipse,无需安装,和安装版一样都能为Android开发提供功能。
(3)AndroidSDK安装在Android Developers下载Android-sdk_r07-windows.zip,下载完成后解压到任意路径。
运行SDKManager.exe,出现如图以下界面,点击AvailablePackage。
选择希望安装的SDK及其文档或者其它包,点击InstallationSelected、AcceptAll、InstallAccepted,开始下载安装所选包。
下载完成后出现如下图的所有Android-sdk_r07-windows文件夹内容;
(4)ADT安装
ADT实际上是一个工具,它可以连接sdk和Eclipse,帮助Eclipse找到sdk打开Eclipse界面,进入进入菜单中的“Help”->“Install New Software”,点击Add按钮弹出对话框要求输入Name和Location,完成之后,选择Window>Preferences;在左边的面板选择Android,然后在右侧点击Browse;并选中SDK路径,本机为;D:
\YJSH\Android\Android-sdk_r07-windows;点击Apply、OK。
配置完成。
(5)创建AVD
为使Android应用程序可以在模拟器上运行,必须创建AVD,步骤如下:
在Eclipse中,选择Windows>AndroidSDKandAVDManager,点击左侧面板的VirtualDevices,再右侧点击New,填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值,点击CreateAVD即可完成创建AVD。
3流程介绍与概要设计
3.1游戏流程介绍
根据拼图游戏的游戏规则,本设计拟出游戏的大致流程如图3.1所示:
图3.1拼图游戏流程图
3.2系统概要设计
本设计参考了拼图游戏流程图(图3.1)按照自顶向下的设计方式将拼图游戏分为以下模块进行设计,如图3.2所示:
图3.2拼图游戏模块
3.2.1界面布局模块
由于本课题的题材是一款游戏,对于游戏的界面以及一些基本控件有必要介绍一下。
本系统一共有两个界面:
一个选择界面,一个游戏界面,基本的控件有文本框,下拉列表,网格视图,按钮,图片视图等。
下面简单介绍下它们的作用:
文本框主要是用来显示一些文本,这些文本基本是描述文本框所在位置的功能。
下拉列表主要用在了难度选择部分,当玩家点击难度时,会出现下拉列表。
网格视图主要用于图片选择部分,利用网格视图将图片一一列出,供玩家选择图片进行游戏。
按钮是两个界面的链接枢纽,在第一个选择界面按下确定按钮,会跳转到游戏界面。
在游戏界面也设置了一个按钮,主要是给玩家提供“重新游戏”的机会。
图片视图只要用来显示图片,在游戏界面用图片视图显示图片,供玩家游戏。
3.2.2难度选择模块
拼图游戏的难度在于图片被分割后的块数,数量越多,自然难度就越大。
(1)难度最小的是将其设置为3*3
当难度设置为3*3时,系统将图片分割为3行3列,也就是将图片分成了9块。
(2)难度最大的是将其设置为4*4
当难度设置为4*4时,系统将图片分割成4行4列,也就是将图片分成了16块。
(3)难度中等的设置有两种:
3*4和4*3
当难度设置为3*4时,系统将图片分割成3行4列,即分成了12块。
当难度设置为4*4时,系统将图片分割成4行3列,同样分成了12块。
3.2.3图片选择模块
图片选择步骤相当简单,只要在选择界面的图片选择区域,从9张图片中鼠标单击1张玩家感兴趣的图片即可。
3.2.4步数和时间模块
拼图游戏过程中,为了增加趣味性,玩家每移动一次图块,步数加一,知道游戏全部位置正确,游戏结束,统计最后步数;从游戏开始,时间模块开始计时,直到游戏结束,时间停止,并显示玩家完成游戏所花的时间。
3.2.5游戏实现模块
在完成上述的图片选择,难度选择后就可以开始正式的拼图游戏。
玩家选择“play”后,图片会根据玩家选择的难度随机分解图片。
在本设计中,原图分割后右下角设置为空白块,为图块的移动提供可能。
玩家用鼠标点击与空白块相邻的图块,并将选中的图片往空白块拖动,这样就完成了空白块与选中图片的位置的互换。
这样子循环往复,知道全部图块位置正确,游戏就结束了。
4系统详细设计与实现
4.1界面布局实现
本设计有两个界面:
选择界面和游戏界面。
界面的设计主要运用Android的绘图技术,图形的绘制通常是在View类中完成的,同时也会用到各种控件,如:
TextView,Button,Spinner,GridView,ImageView。
当然说到控件,容器就不得不提了,两者是息息相关的。
本设计中用到了最常用的LinearLayout容器,控件的布局也用到了相对布局,绝对布局等。
4.1.1选择界面布局
选择界面在main.xml文件中布局,界面效果如图4.1.1:
图4.1.1选择界面
该界面采用LinearLayout布局,在LinearLayout标签中完成界面设置。
布局设置:
设置布局排列方式为竖直排列,宽和高的值为填满,背景颜色为黑色。
代码如下:
android:
orientation="vertical"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
下面给出构成该界面的一些基本控件的设置代码:
设置文本框的高和宽根据内容调整,文本内容从values文件夹中的strings.xml文件中读取,内容为“等级”:
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
text="@string/level"
style="@style/font_20_white_bold"/
设置下拉列表的高和宽根据内容调整:
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
设置文本框高根据内容调整,宽为填满,文本内容取自values文件夹下strings.xml文件,内容为选择图片区:
android:
layout_width="fill_parent"
android:
layout_height="wrap_content"
android:
text="@string/selectPictureArea"
style="@style/font_20_white_bold"
android:
background="@color/slateGray"
设置网格视图宽和高为填满:
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
设置按钮属性,宽和高为根据内容调整,按钮内容取自values文件夹的strings.xml文件,内容为“确定”:
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
text="@string/confirm"
style="@style/btn_font_17_black"
android:
layout_gravity="center”
4.1.2游戏界面布局
游戏界面在jigsaw.xml文件中布局,界面效果如图4.1.2:
图4.1.2游戏界面
该界面同样采用LinearLayout布局,在LinearLayout标签中进行基本设置。
布局设置:
高和宽为填满,排列方式为竖直排列,背景颜色为黑色。
代码如下:
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
orientation="vertical"
android:
background="@color/black"
下面给出游戏界面其他控件的设置内容和相关代码:
设置文本框的高和宽根据内容调整,文本框的内容取自strings.xml,内容为“预览”,位置居中:
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
text="@string/preview"
style="@style/font_20_white_bold"
android:
layout_gravity="center"
设置图片框高和宽根据内容调整,图片取自drawable文件下的pingtu_6:
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
src="@drawable/pingtu_6"
设置文本框高和宽根据内容调整,文本框内容取自strings.xml中的level2,内容为“等级”:
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
text="@string/level2"
style="@style/font_20_white_bold"
设置文本框高和宽根据内容调整,文本框内容取自strings.xml中的stepNum,内容为“步数”:
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
text="@string/stepNum"
style="@style/font_20_white_bold"
设置文本框高和宽根据内容调整,文本框内容取自strings.xml中的time,内容为“时间”:
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
text="@string/time"
style="@style/font_20_white_bold"
设置按钮高和宽根据内容调整,文本框内容取自strings.xml中的play,内容为“play”
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
text="@string/play"
android:
textSize="14dip"
4.2游戏功能实现
游戏代码具体运行流程是这样的:
游戏启动后,启动MainActivity,接着加载main.xml初始化选择界面,在完成难度选择和图片选择后,点击“确定”按钮,运行MainActivity类中的监听器btnOnClickListener跳转在JigsawActivity,并加载jigsaw.xml文件初始化游戏界面,然后根据界面上的内容进行游戏。
整个设计过程中主要完成以下功能:
难度选择,图片选择,步数和计时功能,拼图功能。
4.2.1难度选择
在选择界面点击“等级”后的下拉列表,跳出下拉列表框,供玩家选择难度,在MainActivity中导入MainImpl类和IMain类用于实现难度选择。
MainImpl类中定义了getLevelAdapter方法,使用List()将四种难度等级存入列表,以供选择。
getLevelAdapter方法的代码如下:
publicArra
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 益智 拼图游戏 设计 毕业设计
![提示](https://static.bdocx.com/images/bang_tan.gif)