基于Android的益智游戏的设计与实现本科生毕业设计 精品.docx

上传人:b****7 文档编号:10185195 上传时间:2023-02-09 格式:DOCX 页数:45 大小:685.59KB
下载 相关 举报
基于Android的益智游戏的设计与实现本科生毕业设计 精品.docx_第1页
第1页 / 共45页
基于Android的益智游戏的设计与实现本科生毕业设计 精品.docx_第2页
第2页 / 共45页
基于Android的益智游戏的设计与实现本科生毕业设计 精品.docx_第3页
第3页 / 共45页
基于Android的益智游戏的设计与实现本科生毕业设计 精品.docx_第4页
第4页 / 共45页
基于Android的益智游戏的设计与实现本科生毕业设计 精品.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

基于Android的益智游戏的设计与实现本科生毕业设计 精品.docx

《基于Android的益智游戏的设计与实现本科生毕业设计 精品.docx》由会员分享,可在线阅读,更多相关《基于Android的益智游戏的设计与实现本科生毕业设计 精品.docx(45页珍藏版)》请在冰豆网上搜索。

基于Android的益智游戏的设计与实现本科生毕业设计 精品.docx

基于Android的益智游戏的设计与实现本科生毕业设计精品

南阳理工学院本科生毕业设计(论文)

基于Android的益智游戏的设计与实现

DesignandResearchofDevelopmental

gameBasedonAndroid

总计:

毕业设计(论文)31页

表格:

5个

图片:

14个

南阳理工学院本科毕业设计(论文)

基于Android的益智游戏的设计与实现

DesignandResearchofDevelopmental

gameBasedonAndroid

南阳理工学院

NanyangInstituteofTechnology

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:

所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:

     日 期:

     

指导教师签名:

     日  期:

     

使用授权说明

本人完全了解XX大学关于收集、保存、使用毕业设计(论文)的规定,即:

按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:

     日 期:

     

基于Android的益智游戏的设计与实现

软件工程陈兵

1[摘要]在国内外,android的前景十分广阔,尤其是这个平台的游戏开发更是前途不可限量。

1976年Gremlin平台推出了一款经典街机游戏Blockade,21年后诺基亚基于这个创意推出了世界上第一款最受欢迎的手机游戏贪吃蛇从而开启了手机游戏发展之先河。

发展到现在,3G手机游戏已经成为当今移动游戏领域的主流,Android作为这个时代的弄潮儿正以燎原之势蔓延开来。

以《仙剑》为代表的手机RPG游戏已渐渐退出舞台,现在老少皆宜的益智类游戏慢慢占据着主流,本论文研究的游戏正是这样一款游戏,Q版的游戏画面风格和简单易懂的操作适合于任何年龄段的玩家。

《航空帝国》除采用Android平台的四大组件,涉及到自定义View中画图的一些方法和技巧是本游戏的重点,调用Android系统画图的API及自己实现的相应算法,再加上漂亮的图片足以实现几乎任何炫酷的效果。

有人说任何一个智能手机用户都是一个潜在的游戏玩家,我想搭乘Android的顺风车,手机游戏开发必将大有作为。

[关键词]Android;手机游戏;3G;益智类游戏;老少皆宜;

DesignandResearchofDevelopmental

gameBasedonAndroid

SoftwareEngineeringMajorChenBing

1Abstract:

Athomeandabroad,theAndroidhasbroadprospects,especiallyintheplatformgamedevelopersislimitless.In1976theGremlinplatformlaunchedaclassicarcadegamebasedontheNokiaBlockade,21creativehaslaunchedtheworld’sfirstandmostpopularmobilephonegameSnake,therebyopeningthemobilephonegamedevelopmentofprecedent.Untilnow,3Gmobilephonegameshavebecometoday’smobilephonegameofthemainstream,Androidastheeraofbeach-goersmustborrowwindsmoothbright.In“theimmortalsword”astherepresentativeofthemobilephoneRPGgamehasgraduallyquitthestage,nowoccupyingthemainpuzzlegameslowly,thispaperstudiesthegameisjustagame,Qversionofthegamescreenstyleandsimpleandeasyoperationisstuitableforanyagegameplayer.《Empire》inadditiontotheAndroidplatformairfourcomponents,involvecustomViewdrawingsomemethodsandtechniquesisthefocusofthegame,calledAndroidsystemdrawingoftheAPIandrealizethealgorithm,combinedwithbeautifulpicturestoachievevirtuallyanycooleffect.Peoplesaythatanyoneoftheintelligentmobilephoneuserisapotentialgameplayer,IwanttotaketheAndroidride,mobilephonegamedevelopmentwillaccomplishmuch.

1Keywords:

MobilePhoneGame;3G;Developmentalgame;yangandold;

1绪论

1.1背景

3G(第三代数字通讯技术)正离我们的生活越来越近,它的到来必将掀起一阵无线通讯的新浪潮,3G是向未来个人通信演进的一个重要发展阶段,具有里程碑和划时代的意义。

说到3G不能不谈到Android,[1]Android是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统。

它包括一个操作系统,中间件和一些重要的应用程序。

它采用软件堆层(SoftwareStack,又名软件叠层)的架构,主要分为三部分。

底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和Dalvik虚拟机,由C++开发。

最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分。

不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。

这里,可以把android看作是一个类似于windows的操作系统。

学习android平台下的软件开发正如以前学习windows平台下的软件开发一样。

[1]

在国内,android的前景十分广阔,国内很多的厂商和运营商也纷纷加入了android阵营,包括中国移动,中国联通,华为通讯,联想等大企业。

同时android应用的范围不仅仅在手机,国内一些厂家也陆续推出了采用android系统的MID产品,比较著名的包括由Rockchip和蓝魔推出的同时具备高清播放和智能系统的音悦汇W7,我们可以预见android也将会被广泛应用在国产智能上网设备上,将进一步扩大Andorid系统的应用范围。

1.2Android的崛起

【2】Android操作系统是Google最具杀伤力的武器之一。

苹果以其天才的创新,使得iphone在全球迅速拥有了数百万忠实粉丝,而Android作为第一个完整的,开放,免费的手机平台,使开发者在为其开发程序时拥有更大的自由。

与Windows,Symbian等厂商不同的是,Android操作系统免费向开发人员提供,这样可节省近三成的成本,得到了众多厂商和开发者的拥护。

【2】最早进入Android市场的宏达已经陆续在一年内推出了G1,Magic,Hero,Tatto等4款手机,三星也在2010年推出了Galaxyi7500,连摩托罗拉也推出了新款Android手机Cliq,中国移动也以Android为基础开发了Ophone平台。

这些发展证明Android已成为只能手机市场的重要发展趋势。

[3]2010年是android平台飞速发展的一年。

据报道显示,2011年8月Android已占据了全球智能手机市场的半壁江山;而作为世界上零售领域最庞大的智能手机卖家苹果公司,也以其iOS操作系统控制了五分之一的市场。

换言之,Android和iOS加起来在全球智能手机市场上占据了三分之二的绝大多数市场份额。

Android已经在智能手机操作系统上占据着主导地位。

这不难解释,毕竟这样一个完全免费并开放源代码的平台对于许多制造商来说都极具吸引力。

包括HTC、Samsung、Acer、SonyEricsson、LG、Motorola等等一系列厂商都对其投入了极大地关注和合作。

[3]

因此,2011年6月Google宣称其每天激活50万Android设备,我们对这一消息并不会感到十分吃惊。

这一数据虽然也包括平板电脑在内,但即便是这样,它也仍然非常可观。

它不仅仅显示了Android在制造商和消费者间的普及度,同时还标志着智能手机正在成为如今社会不可缺少的一部分。

Andy是一个有远见的人,早在2003年他就看到了Android2005年的起步和被Google的收购,也看到了系统的进步和新的机型的快速的发布。

所有的这一切都让我们相信,Android走向世界第一移动操作系统的宝座的步伐是势不可挡的,Android可能真的会继续带着我们走向移动设备梦想的彼岸。

1.3国内外研究现状

Android包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。

Google与开放手机联盟合作开发了Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达电和T-Mobile在内的30多家技术和无线应用的领军企业组成。

Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。

【4】Android作为谷歌企业战略的重要组成部分,将进一步推进"随时随地为每个人提供信息"这一企业目标的实现。

我们发现,全球为数众多的移动电话用户从未使用过任何基于Android的电话。

谷歌的目标是让(移动通讯)不依赖于设备甚至平台。

出于这个目的,Android将补充,而不会替代谷歌长期以来奉行的移动发展战略:

通过与全球各地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。

【4】

开放手机联盟的成立和Android的推出是对现状的重大改变,在带来初步效益之前,还需要不小的耐心和高昂的投入。

但是,谷歌也在不断努力,让这些服务变得更好,同时也将添加更有吸引力的特性、应用和服务。

1.4项目研究的主要内容

此游戏主要用到了Android用来画图的API,主类继承view类,重写其onDraw()方法并另起一个线程对主UI线程更新,实现整个游戏的动态效果。

其中自己写了很多算法来实现一些炫酷的效果。

游戏主体框架的构思,分为8大部分:

com.hkdg.animation用来存放游戏中所用到的对ani动画的初始化及播放的类。

com.hkdg.game主要用来存放从服务器解析过来的数据,也包括读取的本地数据。

com.hkdg.game.Music用来存放游戏中音乐,音效的初始化及播放的类。

com.hkdg.game.Object游戏中所用到的所有实体类存放在此。

com.hkdg.game.View游戏UI由若干自定义View组成,所有的View类存放于此。

com.hkdg.GameEngine此包中主要存放的是一个继承了View的类,它另起了一个线程用来绘制界面,并同时更新主UI线程。

com.hkdg.Main这是一个存放着几个Activity的包,游戏中为数不多的几个activity都存放于此。

com.hkdg.tools这是一个存放着工具类的工具包。

1.5本章小结

本章主要对Android的发展历程以及对本游戏内容进行了简单的阐述,为Android开发者提供一个参考。

2Android的开发环境

2.1Android操作系统

目前只支持XP(32-bit)、Vista(32/64-bit)、MacOSX10.4.8或更新版本(x86),Linux(只在LinuxUbuntuDapperDrake上面做过测试)。

系统XPsp2/sp332bit来做讲解,其他系统的可以google一下差异,反正都大同小异的。

2.2Android开发环境

建议使用eclipse进行开发,当然,eclipse版本要在3.3以上,这是官方说法,3.3以下我也没测过,3.3(Europa)、3.4(Ganymede)都可以java版本或者EE版本也都没问题的,可以到eclipse官方下载最新版本。

因为开发是基于java的,所以jdk是少不了的,jdk要求是5.0或者6.0,我还是用5.0比较多,可以到sun官方下载。

2.3Android开发环境变量的配置

2.3.1JDK的配置

首先要到sun官方下载jdk,注意的是下载jdk而不是下载jre,因为jre是提供java的运行环境而不是开发环境。

sun官方网站是:

下载后安装是下的解压包那就解压到某目录,例如解压到是C:

\ProgramFiles\Java\jdk1.5.0_14右键点击我的电脑->属性->高级,点击下面的环境变量,在下面的“系统变量”处选择新建在变量名处输入JAVA_HOME变量值中输入刚才的目录,比如C:

\ProgramFiles\Java\jdk1.5.0_14。

效果如图2-1所示:

图2-3-1-1进入环境变量

确定后再新建一个变量名为classpath,变量值为%JAVA_HOME%/lib/rt.jar;%JAVA_HOME%/lib/tools.jar,确定后找到PATH的变量,双击或点击编辑,在变量值最前面加上%JAVA_HOME%/bin;注意里面的是,确定、确定、确定后即可。

具体如下图2-2所示

图2-3-1-2环境变量的配置

然后开始-运行cmd,输入java或者javac看看有没有效果,如果出来一大堆其它的东西,那就好了,如果出现类似xxx不是内部或者是外部命令之类的,那就说明你的设置有问题,看看那里出问题然后加以改正。

2.3.2SDK的配置

因为我们要开发的android应用程序,所以下的sdk是Google那里下载,地址在以后更新后估计地址会变,所以大家可以从然后同样要设置环境变量,同jdk设置,新建一个SDK_HOME,值为D:

\SDK\android-sdk-windows-1.5_r3\android-sdk-windows-1.5_r3,然后找到path,在前面加上%SDK_HOME%\tools;就OK了。

和jdk一样,我们也可以测试一下环境变量是否设置成功,cmd窗口中输入android,出现一堆东西,就完成了。

2.4Eclipse的配置

当然,以上都搞定后,还不能马上用eclipse开发android应用程序,还必须添加eclipse插件才行,幸好这步骤非常轻松,打开eclipse后,点击菜单栏的help->installnewsoftware...然后点击Add会出来一个AddSite的窗口,这里Name输入android(自己取个就是了),location中输入插件的网络地址:

https:

//dl-DDMS"和"AndroidDevelopmentTools"都选中,finish就可以了,可能有段时间会去计算插件占用资源情况,慢慢等会。

完成后会提示重启eclipse来加载插件,ok重启,就可以用了。

2.5本章小结

本章将主要介绍如何构建Android开发环境,包括获取AndroidSDK、Eclipse以及进行AndroidEclipse插件设置等。

3Android应用程序核心

3.1应用程序基础

Android的应用程序全部都是用Java编程语言所写的。

编译后的Java代码——包括应用程序要求的任何数据和资源文件,是通过aapt工具捆绑成一个Android包,归档文件是以.apk为后缀。

这个文件是分发应用程序和安装到移动设备的中介或者是工具,用户下载这个文件到他们自己的设备上。

一个.apk文件中的所有代码就会被认为是一个应用程序。

aapt是AndroidAssetPackagingTool的首写字母的缩写,这个工具包是含在SDK

的tools/目录下的。

查看、创建、更新与zip兼容的归档文件(zip、jar、apk)。

它也能将资源文件编译成二进制包。

虽然你可能不会经常直接使用appt,但构建脚本(buildscripts)和IDE插件会使用这个工具打包成apk文件,构成一个Android的应用程序。

下面是更详细的使用细节,[5]首先打开一个终端,进入tools/目录下,运行命令:

Linux或Mac操作系统:

./aapt,如果是Windows:

aapt.exe。

在这里注意的是:

tools/目录指的是androidSDK目录下的/platforms/android-X/tools/。

在很多的方面,每个Android的应用程序是生活在它自己的世界。

默认的情况下,任何一个应用程序是运行在它自己的Linux进程中。

而当应用程序中的任何代码需要被执行时候,Android将启动进程;当它不再需要和系统资源不会被其他应用程序所请求时,Android就会关闭这个进程。

每一个应用程序都有自己的Java虚拟机(VM),所以应用程序的代码是独立于其他所有的应用程序代码的运行。

在默认情况下,每一个应用程序分配一个唯一的Linux用户ID。

权限被设置为每一个应用程序的文件仅对用户和应用程序自己本身可见。

虽然有一些方法也可以暴露他们给其他应用程序。

也有可能的是设置两个应用程序共享一个用户ID,这种情况下,他们能够看到对方的文件。

为了节省系统资源的占用,具有相同ID的应用程序最好可以安排在同一个Linux进程中,共享同一个VM。

[5]

3.2应用程序组件

3.2.1Acitivity

Activity是Android组件中最基本也是最为常见的组件,在一个Android应用中,一个Activity通常就是一个单独的屏幕。

当Activity从一种状态转变到另一种状态时,会调用以下保护方法来通知这种变化:

voidonCreate(BundlesavedInstanceState)

voidonStart()

voidonRestart()voidonResume()

voidonPause()voidonStop()

voidonDestroy()

【6】下图为Activity的生命周期图示:

图3-2-1Activity的生命周期图示[6]

在实现Activity类的时候,通过覆盖(override)这些方法即可在你需要处理的时候来调用。

onCreate:

当活动第一次启动的时候,触发该方法,可以在此时完成活动的初始化工作。

onCreate方法有一个参数,该参数可以为空(null),也可以是之前调用onSaveInstanceState()方法保存的状态信息。

onStart:

该方法的触发表示所属活动将被展现给用户。

onResume:

当一个活动和用户发生交互的时候,触发该方法。

onPause:

当一个正在前台运行的活动因为其他的活动需要前台运行而转入后台运行的时候,触发该方法。

这时候需要将活动的状态持久化,比如正在编辑的数据库记录等。

onStop:

当一个活动不再需要展示给用户的时候,触发该方法。

如果内存紧张,系统会直接结束这个活动,而不会触发onStop方法。

所以保存状态信息是应该在onPause时做,而不是onStop时做。

活动如果没有在前台运行,都将被停止或者Linux管理进程为了给新的活动预留足够的存储空间而随时结束这些活动。

因此对于开发者来说,在设计应用程序的时候,必须时刻牢记这一原则。

在一些情况下,onPause方法或许是活动触发的最后的方法,因此开发者需要在这个时候保存需要保存的信息。

onRestart:

当处于停止状态的活动需要再次展现给用户的时候,触发该方法。

onDestroy:

当活动销毁的时候,触发该方法。

和onStop方法一样,如果内存紧张,系统会直接结束这个活动而不会触发该方法。

onSaveInstanceState:

系统调用该方法,允许活动保存之前的状态,比如说在一串字符串中的光标所处的位置等。

通常情况下,开发者不需要重写覆盖该方法,在默认的实现中,已经提供了自动保存活动所涉及到的用户界面组件的所有状态信息。

3.2.2Service

Service是一种长生命周期,没有用户界面的程序。

Service是android系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。

Service的启动有两种方式:

context.startService()和context.bindService()。

【7】使用context.startService()启动Service是会经历:

context.startService()->onCreate()->onStart()->Servicerunningcontext.stopService()|->onDestroy()->Servicestop如果Service还没有运行,则android先调用onCreate()然后调用onStart();如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次。

stopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用stopService的话,Servi

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

当前位置:首页 > 表格模板 > 合同协议

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

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