毕业论文-基于android系统平台的逃生游戏的设计与开发_第1页
毕业论文-基于android系统平台的逃生游戏的设计与开发_第2页
毕业论文-基于android系统平台的逃生游戏的设计与开发_第3页
毕业论文-基于android系统平台的逃生游戏的设计与开发_第4页
毕业论文-基于android系统平台的逃生游戏的设计与开发_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计说明书基于ANDROID的逃生游戏的设计与开发班级学号姓名学院专业指导教师2013年6月09210F020921010829陈程软件工程潘广贞张英锋软件学院基于ANDROID的逃生游戏的开发与设计摘要伴随着GOOGLEANDROID操作系统的盛行,国内外的开发团队也逐渐的壮大起来了,基于ANDROIDSDK的系统开发,基于ANDROID应用的开发等已逐渐倍受大家关注,而手机游戏开发历来是移动开发中分量最重的部分,面对如此火爆的ANDROID市场自然也不甘示弱,由于ANDROID的应用层开发是基于JAVA的开发,所以必有其可以快速移植J2ME开发的游戏的优势11,但是移植的游戏必定也不能发挥ANDROID操作系统独特的特性,所以目前基于ANDROID游戏开发的市场还是不够成熟的,面对这种情况,在了解ANDROIDSDK基础上,我打算开发一款适应于ANDROID操作系统的逃生游戏。本游戏在ANDROID平台下进行开发和设计,经测试,游戏的基本功能均实现,系统具有较好的视觉效果,并且操作简便。关键词ANDROID,逃生游戏,JAVATHEDESIGNANDDEVELOPMENTOFANDROIDBASEDONESCAPEGAMEABSTRACTALONGWITHTHEGOOGLEANDROIDOPERATINGSYSTEMPREVAILED,DOMESTICANDFOREIGNDEVELOPMENTTEAMALSOGRADUALLYGREWUP,THESYSTEMDEVELOPMENTOFANDROIDBASEDONSDK,ANDROIDAPPLICATIONDEVELOPMENTHASGRADUALLYATTRACTEDATTENTION,ANDTHEMOBILEPHONEGAMEDEVELOPMENTISALWAYSMOVINGPARTOFTHEDEVELOPMENTOFTHEHEAVIESTWEIGHT,SOUNPOPULARWITHTHEANDROIDMARKETISNOTRESIGNEDTOPLAYINGSECONDFIDDLEDUETOTHEAPPLICATIONLAYER,ANDROIDDEVELOPMENTBASEDONJAVADEVELOPMENT,SOMUSTHAVEITSCANBEQUICKLYPORTEDJ2MEDEVELOPMENTOFTHEGAMEANDTHEADVANTAGESOF11,BUTTHETRANSPLANTGAMESMUSTCANNOTPLAYTHEUNIQUECHARACTERISTICSOFTHEANDROIDOPERATINGSYSTEM,SOTHECURRENTBASEDONANDROIDGAMEDEVELOPMENTMARKETISSTILLNOTMATURE,INTHEFACEOFTHISSITUATION,INTHEUNDERSTANDINGOFANDROIDSDKONTHEBASIS,IINTENDTODEVELOPASUITABLEANDROIDOPERATINGSYSTEMESCAPEGAMETHISGAMEINANDROIDPLATFORMISDEVELOPEDANDDESIGNED,TESTED,BASICFUNCTIONOFGAMEISREALIZED,THESYSTEMHASGOODVISUALEFFECT,ANDTHEOPERATIONISSIMPLEANDCONVENIENTKEYWORDSANDROID,ESCAPEGAMES,JAVA目录1引言111课题研究背景112国内外研究现状及分析113论文主要内容22开发环境介绍421ANDROID简介422ANDROID开发环境介绍523ANDROID开发平台搭建步骤63系统分析1231系统需求分析12311功能性需求分析12312安全性需求分析1232可行性分析12321技术可行性12322经济可行性13323操作可行性134系统设计1441系统结构设计1442数据库设计1443地图设计1544游戏界面16441游戏界面结构设计16442注册界面16443登录界面18444用户选择界面18445关卡选择界面19446积分排行界面19447游戏界面20448游戏规则设计215系统实现2251用户注册2252积分上传2453用户排名2454登录界面2655算法实现2656关卡选择276系统测试2861注册功能测试2862关卡选择功能测试2963游戏测试3064积分排名测试32结论33附录34参考文献40致谢421引言11课题研究背景手机游戏成绩斐然,成为IT产业中增长最快的部分之一纵观IT产业的历史,计算机游戏已经成为技术创新背后的动者渴望更加强大的硬件计算能力;渴望不受不的软件的限制,无论是将图形强制在人工智能(AI)上还是网络安全性。游戏开发者和玩家常常是前沿计算机技术的最早的采用者。由于他们的创新天性,游戏不再是由大型采购公司控制的技术产品,游戏领域总是有充足的空间给那些在这方面有天分的单个创新者。随着技术对游戏经验的促进,游戏市场持续增长。商业IT革命为我们节省了时间力之一。计算机游戏和金钱,从而提高了我们的工作水平,我们因此花费更多的时间和金钱在游戏上,来改善生活的整体质量。甚至在当今困难的经济时代,游戏仍保持快速增长,他仍然是盈利行业的组成部分。JAVA开发者应该注意到这里蕴藏着的巨大的商机。随着人们生活质量的不断提高以及个人电脑和网络的普及,人们的业余生活质量要求也在不断提高,选择一款好玩,精美,画面和音质,品质优良的休闲游戏已经成为一种流行的休闲方式。可以说在人们的日常生活中,除了工作、学习,玩自己喜欢的游戏正在成为一种时尚。而且休闲类游戏大概是覆盖年龄段最广的一类,休闲类游戏曾经给了不少玩家们一个美好的回忆,也是目前游戏平台非常广的一类游戏。所以,开发出大家都比较喜欢的,高品质的休闲互动游戏,将会受到人们的普遍欢迎。让人们在工作学习之余,享受游戏的快乐,也是一款游戏真正成功的意义。12国内外研究现状及分析ANDROID是由GOOGLE为首的OHAOPENHANDSETALLIANCE推出的一款开放的嵌入式操作系统平台,从2008推出的ANDROIDSDK10到现在,ANDROIDSDK的最新版本已经升级到了最新的23,ANDROID正以前所未有的速度聚集着来自世界各地的开发者,越来越多的创意被应用到ANDROID应用程序的开发中,大有席卷整个手机产业的趋势4。说到ANDROID系统,GOOGLE于2007年11月5日宣布的基于LINUX平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。5ANDROID的核心系统服务依赖于LINUX26内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。由于ANDROID带有相当浓郁的LINUX血统这也就意味着他拥有开源LINUX的众多优点安全、运算速度快、易于开发等等13。正因为ANDROID具有上述的优点,所以它在国内具有相当强劲的竞争优势。青年网络的主要负责人潘长华先生说到ANDROID作为一款十分优秀的移动开发平台十分适合国内的开发环境。尤其是中小企业开发团队低成本以及源代码的分享可以为企业节省大量资金,这对于中小企业来说无疑是最大的诱惑。青年网络推出的“星网睿话“就是国内成功的ANDROID开发产品14。同时一个资深的ANDROID开发爱好者告诉记者如果你是个人开发爱好者,那么ANDROID就是GOOGLE为你量身打造的,放弃闭源的种种吧,开源才是王道,ANDROID才是未来的主宰15。伴随着GOOGLEANDROID操作系统的盛行,国内外的开发团队也逐渐的壮大起来了,基于ANDROIDSDK的系统开发,基于ANDROID应用的开发等已逐渐倍受大家关注,而手机游戏开发历来是移动开发中分量最重的部分,面对如此火爆的ANDROID市场自然也不甘示弱,由于ANDROID的应用层开发是基于JAVA的开发,所以必有其可以快速移植J2ME开发的游戏的优势11,但是移植的游戏必定也不能发挥ANDROID操作系统独特的特性,所以目前基于ANDROID游戏开发的市场还是不够成熟的,面对这种情况,在了解ANDROIDSDK基础上,我打算开发一款适应于ANDROID操作系统的逃生游戏。13论文主要内容本课题实在ANDROID平台上开发一款逃生游戏,主要内容如下(1)用户登录界面的设定用户界面上有进入游戏,关卡选择,积分排名,退出游戏选项。选择进入游戏选项可以进入游戏界面并进行游戏,选卡选择选项可以让用户选择不同难度的关卡满足用户的需要,积分排名选项可以让用户查询到自己的积分以及排名。(2)游戏界面的设定选定了英雄和怪物的模型以及障碍物和奖励的道具模型。游戏界面上还有暂停,恢复和返回选项。暂停选项能使游戏界面活动停止,恢复选项则使游戏继续,返回选项可以使界面回到登录界面。(3)音乐背景音乐和游戏音效。根据逃生游戏的主要功能模块图可以得到游戏的具体功能前台表示模块,包括欢迎界面模块和游戏界面模块。主要完成游戏的欢迎界面,以及游戏界面的绘制与控制。是与玩家最直接的接触的部分,也是游戏可玩性的关键所在,其绘制机理是根据不同的游戏状态绘制不同的内容。游戏实体模块,包括英雄模块、怪物模块和运动动画模块。游戏的实体类英雄和怪物皆继承自一个公共的实体类,英雄由玩家控制,怪物按特定的寻径算法运动。后台逻辑模块,包括英雄运动模块和怪物运动模块。主要功能为逻辑实现玩家通过触摸手机屏幕控制英雄的移动,包括移动方向的改变以及移动速度等,怪物按照特定的寻径算法追踪英雄。游戏工具模块,包括图片管理模块和常量管理模块。工具模块是用来统一管理游戏中会用到的公共图片资源生成以及绘制,和游戏中用到的所有常量。在游戏的开发过程中,整体设计的主要原则是分散关注、松散结合、逻辑复用、标准定义。一个好的游戏结构,可以使得开发人员的思路更明确。如果没有一个好的封装结构,则彼此的依赖性过强,一旦出现不好的情况其带来的负面影响很严重,而且代码的利用率不高。一个好的封装结构,降低了层与层之间的依赖性,既可以良好的保证未来的可扩展,又能复性使用和重复调用,即系统的可扩展性,又能复性使用和重复调用,即系统的可扩展性。在一定程度的标准化基础上,可替换类与类之间的关联必然保证了接口的标准化。2开发环境及相关技术的介绍21ANDROID简介ANDROID一词的本义指“机器人”,同时也是GOOGLE于2007年11月5日宣布的基于LINUX平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。ANDROID是一种基于LINUX的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由GOOGLE公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。ANDROID操作系统最初由ANDYRUBIN开发,主要支持手机。2005年8月由GOOGLE收购注资。2007年11月,GOOGLE与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良ANDROID系统。随后GOOGLE以APACHE开源许可证的授权方式,发布了ANDROID的源代码。第一部ANDROID智能手机发布于2008年10月。ANDROID逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。APK是安卓应用的后缀,是ANDROIDPACKAGE的缩写,即ANDROID安装包APK。APK是类似SYMBIANSIS或SISX的文件格式。通过将APK文件直接传到ANDROID模拟器或ANDROID手机中执行即可安装。APK文件和SIS一样,把ANDROIDSDK编译的工程打包成一个安装程序文件,格式为APK。APK文件其实是ZIP格式,但后缀名被修改为APK,通过UNZIP解压后,可以看到DEX文件,DEX是DALVIKVMEXECUTES的全称,即ANDROIDDALVIK执行程序,并非JAVAME的字节码而是DALVIK字节码。一个APK文件结构为(1)METAINF(注JAR文件中常可以看到);(2)RES注存放资源文件的目录;(3)ANDROIDMANIFESTXML注程序全局配置文件;(4)CLASSESDEX(注DALVIK字节码);(5)RESOURCESARSC注编译后的二进制资源文件。总结下我们发现ANDROID在运行一个程序时首先需要UNZIP,然后类似SYMBIAN那样直接执行安装,和WINDOWSMOBILE中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过DEXDUMP命令可以反编译,但这样做符合发展规律,微软的WINDOWSGADGETS或者说WPF也采用了这种构架方式。在ANDROID平台中DALVIKVM的执行文件被打包为APK格式,最终运行时加载器会解压然后获取编译后ANDROIDMANIFESTXML文件中的PERMISSION分支相关的安全访问,但仍然存在很多安全限制,如果你将APK文件传到/SYSTEM/APP文件夹下会发现执行是不受限制的。最终我们平时安装的文件可能不是这个文件夹,而在ANDROIDROM中系统的APK文件默认会放入这个文件夹,它们拥有着ROOT权限。22ANDROID开发环境介绍及优势ANDROID的上层应用程序是用JAVA语言开发,所以GOOGLE公司推荐使用主流的JAVA继承开发环境ECLIPSE。只有ECLIPSE还不够,因为使用JAVA语言开发,还应该有SUN公司提供的JAVASDK。此外,ANDROID的应用开发和JAVA开发有较大的区别,所以还需要有GOOGLE提供的ANDROIDSDK。同时,还需要在ECLIPSE安装ADT,为ANDROID开发提供开发发工具的升级或者变更,是ECLIPSE下开发工具的升级下载的工具。简而言之,需要以下的软件,才能搭建ANDROID开发环境,从而惊醒ANDROID应用程序的开发JAVASDK,ECLIPSE,ANDROIDSDK,ADT。ANDROID平台的优势(1)开放性。在优势方面,ANDROID平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到ANDROID联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开发性对于ANDROID的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。(2)不受束缚。在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从2007年IPHONE上市后,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。(3)丰富的硬件。这一点还是与ANDROID平台的开放性相关,由于ANDROID的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容,如同从诺基亚SYMBIAN风格手机一下改用苹果IPHONE,同时还可将SYMBIAN中优秀的软件带到IPHONE上使用、联系人等资料更是可以方便地转移。(4)方便开发。ANDROID平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给ANDROID难题之一。23ANDROID开发平台搭建步骤(1)ECLIPSE安装下载回来的ECPLISEECLIPSEJAVAJUNOWIN32ZIP直接解压即可。(2)JDK安装运行下载回来的JDK安装包一路”下一步”即可。装好之后,配置环境变量打开环境变量窗口方法右键【我的电脑】单击【属性】单击【高级】单击【环境变量】。在上方的用户变量中依次新建如下变量,并分别填入如下路径变量名JAVA_HOME变量值CJAVAJDK170_03如图21所示图21JAVA_HOME变量名PATH变量值JAVA_HOME/BIN如图22所示图22PATH变量名CLASSPATH变量值JAVA_HOME/LIB/TOOLSJARJAVA_HOME/LIB/DTJAR如图23所示图23CLASSPATH(3)ANDROIDSDK安装重启完ECPLISE后,点击菜单”WINDOW”PREFERENCE”,打开了配置窗口,在左边选中ANDROID,在右边输入ANDROIDSDK的路径,点击”OK”,至此环境配置完毕。如图24所示图24SDK安装(4)ADT安装启动安装完解压后的ECPLISE目录下的ECPLISEEXE;点击菜单”HELP”SOFTWAREUPDATES”,在打开的窗口中切换到选项页”AVAILABESOFTWARE”;点击”ADDSITE”,加入以下地址HTTP/DLSSLGOOGLECOM/ANDROID/ECLIPSE/然后点击”OK”;刚才加入的地址,点击”INSTALL”进行ADTANDROIDDEVELOPMENTTOOLS的安装工作;ECPLISE此时会从加入的地址中自动下载跟安装ADT,稍等一会,安装完毕后,提示需要重启ECPLISE,点击”OK”重启ECPLISE。如图25所示图25ADT安装(5)创建AVD创建、删除和浏览AVD之前,通常应该先为ANDROIDSDK在用户变量中新建一个环境变量变量名ANDROID_SDK_HOME变量值EANDROIDANDROIDSDK。而设置了环境变量【ANDROID_SDK_HOME】之后,开发者创建的虚拟设备则会被保存在ANDROID_SDK_HOME/ANDROID路径下。即【ANDROID_SDK_HOME】所设置的路径下。然后打开WINDOW,点击AVDMANAGER,进入一个界面,如图26所示图26AVDMANAGER点击NEW,可以新建一个AVD,如图27所示图27NEWAVD选中一个AVD,点击START,再点击LUNCH,会进入安卓虚拟模拟器界面。如图28所示图28虚拟器3系统分析31系统需求分析311功能性需求分析此次程序程序设计是基于ANDROID平台下的逃生游戏,游戏界面良好,由于针对的是ANDROID智能手机用户,所以游戏的操作也非常简单。该游戏准备以追杀游戏为主题材,内容为英雄躲避怪物的追杀,难度越高怪物越多,通关越多,积分也会越高,通关后会奖励命(或血),玩家触碰到怪物而且没有命(或血)时即定位游戏失败。基本功能有(1)登录功能设计自己的同户名登录到游戏中。(2)关卡选择功能不同的关卡不同的难度供用户选择。(3)音乐功能游戏音乐和音效,增强游戏的效果和可玩性。(4)积分排名功能玩过游戏的玩家会在游戏上有自己的排名。312安全性需求分析该游戏不涉及到用户的真实信息,所以不用担心用户信息的泄露,对用户不会造成损害。32可行性分析321技术可行性ANDROID系统平台是一个基于LINUX开源的手机操作系统。它由GOOGLE公司在2007年11月5日正式发布的。ANDROID平台是由操作系统、中间件、界面和应用软件组成。是第一个要为移动终端创造的一款真正开放的完整的操作系统。说道ANDROID操作系统平台的优势,不得不提到最突出的两个特点“免费”和“开源”。免费ANDROID免费提供其操作系统,让移动过电话制造商可以免费搭载ANDROID操作系统,使得手机的制作成本大大降低,渐渐使得ANDROID普及。开源ANDROID手机制作操作系统代码的开放性,不仅让开发者可以在统一开放平台进行程序开发,而且可以解决现今市场不同智能机之间因文件格式不同造成的信息交流不便、程序内容无法移植等问题;并且ANDROID的开机源码就意味着手机使用者不必在被动地接受移动电话制造商默认的设施和环境,使用者完全可以根据自己的想法自定义手机的配置。通过学习的JAVA和ANDROID以及数据库方面的知识,可以完成逃生游戏。322经济可行性一个项目的开发成本、运行费用和收益这些经济因素决定了该系统是否值得的做,只有投资预计能带来利润的系统才值得进一步去考虑。该系统的开发使用的是已经很成熟的技术和语言,系统的操作和维护都很简单和方便,这些都表明了该系统是一个低成本的系统,该系统的运行费用很低,完成此游戏基本只需要一台PC机,经济上不需要很大的投入,所以是可行的。323操作可行性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足用户的需求。设计开发中一直注重系统操作的简单方便,操作方式都非常人性化,由于ANDROID可以和ECLIPSE配置开发环境,且开发环境为开源的,所以操作上是可行的。4系统设计41系统结构设计本课题采用的是才C/S结构,即客户机和服务器结构,它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到CLIENT端和SERVER端来实现,降低了系统的通讯开销。C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。42数据库设计ER图提供了表示实体型、属性和联系的方法实体型用矩形表示,矩形内写明实体名。属性用椭圆表示,并用无向边将其与相应的实体连接起来。联系用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(11,1N或MN)。逃生游戏所涉及的主要实体及其属性有USERS(UID,USERNAME,PASSWORD,SCORE,MAXLEVEL)逃生游戏ER模型如图41所示图41用户信息根据以上的分析,将ER模型转换成逻辑模型,设计出本系统数据库。根据需要,设计了一个数据表。该表记录了用户的基本信心,包括用户编号,用户姓名,密码,最高得分,最大关卡数。该表结构如表41所示表41USERS字段名数据类型字段说明UIDINT主键USERNAMEVARCHAR用户名PASSWORDVARCHAR密码SCOREINT最高分数MAXLEVELINT最大关卡数43地图设计本游戏是逃生游戏,每一个关卡都设置成一个迷宫。迷宫的具体原理是用1,0表示。1为地图上能走的通道,0为墙。如图42所示图42迷宫地图图中3,3为人的位置,15,1为怪物的位置,15,7为出口。44游戏界面441游戏界面结构设计游戏界面结构设计如图43所示图43游戏界面结构442注册界面注册界面包括USERNAME,PASSWORD两个文本框和RREGISTER和BACK两个按钮,USERNAME最少为4个字符,而且当一个人注册一个用户名后,别人无法再用此帐号注册,否则注册失败。如图44所示图44注册图45注册成功443登录界面图46登录444用户选择界面用户界面分为三个选项STARTGAME,HIGHSCORE和EXITGAME,点击STARTGAME按钮会进入关卡选择界面,点击HIGHSCORE按钮会进入积分排行界面,查询积分排名,点击EXITGAME按钮就会推出游戏。如图47所示图47用户选择445关卡选择界面关卡一共分为十关,每关难度不同,每通一关都会有通关奖励。如图47所示图48关卡选择446积分排行界面积分排行界面显示最高分的五个人的排名,每通关一个关卡,都会生成一个积分,根据就通关关数的多少可以得到不同的积分,然后生成的积分会上传到服务器自动生成排行。如图48所示图49积分排行447游戏界面游戏界面时一个迷宫地图,途中又一个英雄角色和一个怪物角色,怪物会自动追踪英雄,右上缴显示关卡,生命数和生成的积分,如图410所示图410游戏界面当英雄用完自己的生命,就会结束游戏,进入游戏结束界面,并显示自己的积分。如图411所示图411游戏结束448游戏规则设计逃生游戏准备以追杀游戏为主题材,内容为英雄躲避怪物的追杀,难度越高怪物越多,通关越多,积分也会越高,通关后会奖励命(或血),玩家触碰到怪物而且没有命(或血)时即定位游戏失败。(1)游戏角色不能触碰到怪物,触碰到怪物即为失败。(2)游戏有很多关卡,通过的关卡越多,积分越高。(3)游戏是一个迷宫地图,玩家要想办法躲避怪的同时找到出口即通关成功,会获得奖励。5系统实现51用户注册用户注册分为服务端和客户端两部分。(1)服务端服务端代码如图51所示。图51用户注册服务端部分代码通过_POST取得提交的用户名和密码,使用INSERT语句插入数据库中。由于数据库已经对相关的字段进行了设置,因此不会插入重复的用户名。如果插入成功,则表明用户注册成功,此时则返回TRUE,否则,返回FALSE。(2)客户端当用户在游戏的用户注册页面,点击“REGISTER”按钮后,程序将调用VOIDREGPRESSEDCCOBJECT,CCCONTROLEVENT函数,函数代码如图52所示。图52VOIDREGPRESSCCOBJECT,CCCONTROLEVENT函数实现该函数向服务端提交用户注册请求,服务端收到请求会会返回执行结果(TRUE或FALSE),当执行结果返回后,会自动调用服务端的回调函数HTTPCALLBACK,该回调函数会判断服务端返回的执行结果,如果注册成功,则会调用SUCCESS函数,否则,会调用FAILD函数(两函数的代码如图53和图54所示),这两个函数分别会向用户展示注册成功提示和注册失败提示。当点击返回后,前者会返回到登陆界面,后者会返回到注册界面。图53VOIDSUCCESS函数代码图54VOIDFAILD函数代码52积分上传积分上传服务端代码如图55所示图55积分上传服务端代码积分上传采用的是数据库中的UPDATE方法。UPDATE语句用于修改表中的数据。UPDATE的语法是UPDATE表名称SET列名称新值WHERE列名称某值例如UPDATEUSERSSETPASSWORD234567WHEREUSERNAMEXIAOMING用户玩完游戏后会自动生成一个积分,积分会上传到SCORE里。53用户排名用户排名服务端代码如图56所示图56积分排名服务端代码用户排名采用的是数据库中的SELECT方法。SELECT语句用于从表中选取数据,结果被存在一个结果表中。SELECT的语法是SELECT列名称FROM表名称SELECTFROM表名称例如SECLECTUSERNAME,SCOREFROMUSERS每个用户玩完游戏后都会生成自己的积分,然后积分上传到SCORE里,SCORE里的积分会按从大到小的顺序排名,然后用户通过查询会得到自己的积分排名。54登录界面登录界面分为服务端和客户端两部分。(1)服务端服务端代码如图57所示图57登录界面服务端通过_POST取得提交的用户名和密码,使用SELECT从数据库中找到注册的用户名和密码。由于数据库已经对相关的字段进行了设置,因此不会插入重复的用户名。如果用户名存在,并且密码正确,则用户登录成功,此时则返回TRUE,否则,返回FALSE。55算法实现本游戏运用的是回溯算法,也叫试探法,它是一种系统地搜索问题的解的方法。用回溯算法解决问题的一般步骤(1)针对所给问题,定义问题的解空间,它至少包含问题的一个(最优)解。(2)确定易于搜索的解空间结构,使得能用回溯法方便地搜索整个解空间。(3)以深度优先的方式搜索解空间,并且在搜索过程中用剪枝函数避免无效搜索。问题的解空间通常是在搜索问题解的过程中动态产生的,这是回溯算法的一个重要特性。确定了解空间的组织结构后,回溯法就从开始结点(根结点)出发,以深度优先的方式搜索整个解空间。这个开始结点就成为一个活结点,同时也成为当前的扩展结点。在当前的扩展结点处,搜索向纵深方向移至一个新结点。这个新结点就成为一个新的活结点,并成为当前扩展结点。如果在当前的扩展结点处不能再向纵深方向移动,则当前扩展结点就成为死结点。此时,应往回移动(回溯)至最近的一个活结点处,并使这个活结点成为当前的扩展结点。回溯法即以这种工作方式递归地在解空间中搜索,直至找到所要求的解或解空间中已没有活结点时为止。56关卡实现关卡选择代码如图57所示图57关卡选择关卡选择设置成十个关卡,LEVEL01到LEVEL10,每一关有不同的难度。6系统测试首先打开手机WIFI热点,电脑连上手机WIFI,确定手机连上电脑上的数据库。保证游戏可以运行。61注册功能测试当输入USERNAME为CHEN,PASSWORD为123456时,点REGISTER注册成功。运行正常。当再次输入USERNAME为CHEN,PASSWORD为234567时,点REGISTER注册失败,运行正常。当输入USERNAME为CHENG,PASSWORD为123456时,点REGISTER注册成功,运行正常。如图61所示图61注册功能测试图62注册成功图63注册失败62关卡选择功能测试当登录成功时,进入游戏选择界面,有三个选项,分别为STARTGAME,HIGHSCORE和EXITGAME。点击STARTGAME,进入关卡选择界面CHOOSELEVEL,界面上有十关,LEVEL01到LEVEL10。当点击LEVEL01时,进入游戏界面,运行正常。分别点击其他关卡,进入游戏界面,运行正常。如图64所示图64关卡选择功能测试63游戏测试当进入游戏界面,怪物会随着角色的移动而选择路径,追踪算法功能运行正常。当角色碰到怪物时,角色会少一条命,LIFE自动少1,怪物回到起始出发点。当角色通关时,游戏会奖励角色一条命,LIFE自动增1,生成积分,并进入下一关卡,运行正常。当LIFE为0时,游戏结束,运行正常。如图65所示图65游戏第一关测试图66游戏第三关测试图67游戏结束测试64积分排名测试当使用TEST用户游戏结束时SCORE为1800,当使用CHEN用户游戏结束时,SCORE为1300,积分排名。如图68所示图68积分排名测试7结论经过三个月的学习和实践,终于初步完成了我的课题。刚看到自己的毕业设计题目时,自己都被吓了一跳,本来就对ANDROID不熟悉,再加上逃生游戏需要完成注册,积分查询,追踪算法等功能,感觉自己很难完成。但是,我还是努力的去完成它,不断的查询资料,看书,慢慢的在同学和指导老师的帮助下,逐步实现了逃生游戏的基本功能,让我很有成就感。在此次逃生游戏的开发与设计中,首先我学会并熟悉掌握了搭建ECLIPSE和ANDROID开发环境的步骤,然后逐渐的在编写程序,修改程序中的错误,现在虽然基本已经完成所有功能,但肯定还有很多不足,而且我也发现自己数据库方面的知识很欠缺,需要不断的加强。游戏的美工也有很多不足,只能在以后努力提高自己这些方面的能力。本游戏最终能在ANDROID手机上运行,需要电脑绑定手机WIFI热点,手机可以连上电脑里的数据库,后期就是要测试游戏,修改游戏中的漏洞。8附录追踪算法实现代码VOIDMANAGERNEWGAMEM_LEVELLEFT_LIFEPLAYERLEVELM_LEVELPLAYERMONSTERLEVELM_LEVELMONSTERM_LAST_CATCHFALSEMANAGERMANAGERSHAREMANAGERIFINSTANCENULLINSTANCENEWMANAGERRETURNINSTANCEVOIDMANAGERRELEASEIFINSTANCENULLDELETEINSTANCEINSTANCENULLVOIDMANAGERSETLEVELINTLEVELIFLEVEL0M_LEVELLEVEL1ELSEM_LEVEL8INTMANAGERGETLEVELRETURNM_LEVELMANAGERLEVELMANAGERGETLEVELINFORETURNLEVELM_LEVELBOOLMANAGERMOVEDIRECTDIRBOOLRETFALSEIFISGAMEOVER|ISPASSRETURNRETLEVELMAPLEVELM_LEVELSWITCHDIRCASEUPIFPLAYERY0RETTRUEBREAKCASEDOWNIFPLAYERY0PLAYERYRETTRUEBREAKCASELEFTIFPLAYERX0RETTRUEBREAKCASERIGHTIFPLAYERX0PLAYERXRETTRUEBREAKIFISPASSM_SCOREM_LEVEL100LEFT_LIFE100RETURNRETMANAGERPOINTMANAGERGETPLAYERRETURNPLAYERMANAGERPOINTMANAGERGETMONSTERRETURNMONSTERMANAGERPOINTMANAGERGETWAYMEMCPYTMP_MAP,GETLEVELINFOMAP,SIZEOFGETLEVELINFOMAP/获得全部可行路径FINDWAYMONSTER,PLAYERINTLENINTINDEX0IFWAYSSIZE0LENWAYSINDEXSIZE/选择最短路径FORINTI1ISIZESIZEINDEXIPOINTRETIFLEN1RETWAYSINDEX1ELSERETWAYSINDEX0WHILEWAYSSIZE0STDVECTORTPWAYSWAYSSIZE1DELETETPWAYSPOP_BACKMONSTERXRETXMONSTERYRETYIFPLAYERXMONSTERXM_LAST_CATCHTRUEELSEM_LAST_CATCHFALSERETURNRETVOIDMANAGERFINDWAYPOINTPOS,POINTTARGETWAYPUSH_BACKPOSIFPOSXTARGETXWAYPOP_BACKRETURNINTXPOSXINTYPOSYIFTMP_MAPYX1TMP_MAPYX2POINTTMP_POINT4X1,Y,X1,Y,X,Y1,X,Y1FORINTI0I0IFTMP_MAPYX2TMP_MAPYX1WAYPOP_BACKRETURN参考文献1李刚疯狂ANDROID讲义M北京电子工业出版社20002叶达峰编著ECLIPSE编程技术与实例M人民邮电出版社,20063孟晓龙WIN7系统下ANDROID开发平台的搭建J科协论坛下半月2011084陈淮基于ANDROID游戏开发中常用类库的设计与实现D西安电子科技大学20115公磊,周聪基于ANDROID的移动终端应用程序开发与研究J计算机与现代化2008086朱成亮基于ANDROID平台游戏引擎的设计与实现D安徽理工大学20117韩曼娜移动电子商务的APP浪潮N电脑报20110704A048李晓延手机操作系统的战国时代J今日电子2010099胡强ANDROID野蛮增长背后没有大赢家N通信产业报2010120603710武晓黎安卓的春天危机隐现N中国消费者报20110330C0411张炯手机操作系统变局J互联网周刊2007Z112蓝齐找不到ANDROID业务模式戴尔彻底放弃智能手机JIT时代周刊20130113张鹏中国企业为什么青睐ANDROIDJ通信世界20100314ANDROID五年内将主导智能手机市场N中国计算机报2011042500115黄惠钦安卓流量使用超越苹果IOS丰富应用成就优势地位N通信信息报20110608B1216(美)MARTYHALL,LARRYBROWNSERVLET与JSP核心编程(第二版)赵学良译清华大学出版社20040617克曼特内呢(SATYEKOMATINENI),麦克莱恩(DAVEMACLEAN),哈希来(SAYEDHASHIMI)移动开发系列PROANDROID3杨越译人民邮电出版社20111118RICKROGERS,BLAKEMEIKE,ZIGURDMEDNIEKSANDROID应用开发李耀亮译人民邮电出版社2010919KENARNOLD,JAMESGOSLING,DAVIDHOLMESJAVAPROGRAMMINGLANGUAGEM,POSTSMAYBEBACKINTHEPAST,TOONESELFTHEPARANOIDWEIRDBELIEFDISILLUSIONMENT,THESEDAYS,MYMINDHASBEENVERYMESSY,INMYMINDCONSTANTLYALWAYSFEELONESELFSHOULDGOTODOSOMETHING,ORWRITESOMETHINGTWENTYYEARSOFLIFETRAJECTORYDEEPLYSHALLOW,SUDDENLYFEELSOMETHING,DOIT一字开头的年龄已经到了尾声。或许是愧疚于自己似乎把转瞬即逝的很多个不同的日子过成了同一天的样子;或许是追溯过去,对自己那些近乎偏执的怪异信念的醒悟,这些天以来,思绪一直很凌乱,在脑海中不断纠缠。总觉得自己似乎应该去做点什么,或者写点什么。二十年的人生轨迹深深浅浅,突然就感觉到有些事情,非做不可了。THEENDOFOURLIFE,ANDCANMEETMANYTHINGSREALLYDO而穷尽我们的一生,又能遇到多少事情是真正地非做不可DURINGMYCHILDHOOD,THINKLUCKYMONEYANDNEWCLOTHESARENECESSARYFORNEWYEAR,BUTASTHEADVANCEOFTHEAGE,WILLBEMOREANDMOREFOUNDTHATTHOSETHINGSAREOPTIONALJUNIORHIGHSCHOOL,THOUGHTTOHAVEACRUSHONJUSTMEANSTHATTHEREALGROWTH,BUTOVERTHEPASTTHREEYEARSLATER,HISWRITINGOFALUMNIINPEACE,SUDDENLYFOUNDTHATISNTREALLYGROWUP,ITSEEMSISNOTSOIMPORTANTTHENINHIGHSCHOOL,THINKDONTWANTTOGIVEVENTTOOUTYOURINNERVOICECANBEINTHEHIGHSCHOOLCHILDRENOFTHEFEELINGSINAPERIOD,BUTWASEVENTUALLYINFARCTIONWHENGRADUATIONPARTYINTHETHROAT,LATERAGAINSTOODONTHEPITCHHEHASSWEATPROFUSELY,LOOKEDATHISTHROWNABASKETBALLHOOPS,SUDDENLYFOUNDHIMSELFHASALREADYCANTREMEMBERH

温馨提示

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

评论

0/150

提交评论