基于Android 益智拼图游戏设计毕业论文.docx

上传人:b****6 文档编号:3396453 上传时间:2022-11-22 格式:DOCX 页数:38 大小:186.23KB
下载 相关 举报
基于Android 益智拼图游戏设计毕业论文.docx_第1页
第1页 / 共38页
基于Android 益智拼图游戏设计毕业论文.docx_第2页
第2页 / 共38页
基于Android 益智拼图游戏设计毕业论文.docx_第3页
第3页 / 共38页
基于Android 益智拼图游戏设计毕业论文.docx_第4页
第4页 / 共38页
基于Android 益智拼图游戏设计毕业论文.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

基于Android 益智拼图游戏设计毕业论文.docx

《基于Android 益智拼图游戏设计毕业论文.docx》由会员分享,可在线阅读,更多相关《基于Android 益智拼图游戏设计毕业论文.docx(38页珍藏版)》请在冰豆网上搜索。

基于Android 益智拼图游戏设计毕业论文.docx

基于Android益智拼图游戏设计毕业论文

基于Android益智拼图游戏设计毕业论文

摘要II

AbstractIII

1绪论1

1.1课题开发的背景1

1.2课题意义1

2Android架构与开发平台搭建2

2.1Android的系统架构2

2.2Window下Android开发环境的搭建4

3流程介绍与概要设计5

3.1游戏流程介绍5

3.2系统概要设计6

3.2.1界面布局模块6

3.2.2难度选择模块6

3.2.3图片选择模块7

3.2.4步数和时间模块7

3.2.5游戏实现模块7

4系统详细设计与实现8

4.1界面布局实现8

4.1.1选择界面布局8

4.1.2游戏界面布局9

4.2游戏功能实现11

4.2.1难度选择11

4.2.2图片选择12

4.2.3步数和时间设置13

4.2.4拼图的实现14

5系统测试17

5.1Android仿真器介绍17

5.2功能模块测试17

5.3出现的错误及解决方案20

6总结与展望21

参考文献22

附录23

致谢33

基于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方法的代码如下:

publicArrayAdaptergetLevelAdapter(Contextcontext){

Listlist=newArrayList();

String[]level=context.getResources().getStringArray(R.array.levelArray);

for(Stringstr:

level){

list.add(str);

}

ArrayAdaptercityArrayAdapter=newArrayAdapter(context,android.R.layout.simple_spinner_item,list);

cityArrayAdapter.setDropDownViewResource(android.R.layout.simple_

spinner_dropdown_item);

returncityArrayAdapter;

}

在MainActivity中给难度选择定义两个监听器ItemClickListener,玩家单击下拉列表,就会启动ItemClickListener,玩家点击四个难度中的一种后又会启动另一个监听器ItemSelectedListener。

玩家选择完,选择的难度将会传回Activity。

监听器的简单代码如下:

privateclassItemSelectedListenerimplementsOnItemSelectedListener{

publicvoidonItemSelected(AdapterView

>adapterView,Viewview,intposition,

longrowid){

pictureIndex=position;

}

publicvoidonNothingSelected(AdapterView

>arg0){

}

}

4.2.2图片选择

选择界面会列举出9种图片供玩家选择。

图片列举功能是由MainActivity中的showGridView方法和getAllItemsForListView方法完成的。

showGridView方法获取屏幕大小,根据screenWidt和screenHeight自动调整图片大小,保证界面的美观。

而getAllItemsForListView方法生成动态数组imageItem,并且传入数据,将图片一一列举出来。

玩家点击一图片并按下“确定”按钮时,将选择的图片同

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1