毕业论文基于Android系统平台的逃生游戏的设计与开发35944

上传人:痛*** 文档编号:78883399 上传时间:2022-04-22 格式:DOC 页数:47 大小:1.94MB
收藏 版权申诉 举报 下载
毕业论文基于Android系统平台的逃生游戏的设计与开发35944_第1页
第1页 / 共47页
毕业论文基于Android系统平台的逃生游戏的设计与开发35944_第2页
第2页 / 共47页
毕业论文基于Android系统平台的逃生游戏的设计与开发35944_第3页
第3页 / 共47页
资源描述:

《毕业论文基于Android系统平台的逃生游戏的设计与开发35944》由会员分享,可在线阅读,更多相关《毕业论文基于Android系统平台的逃生游戏的设计与开发35944(47页珍藏版)》请在装配图网上搜索。

1、毕业设计说明书基于Android的逃生游戏的设计与开发092101082909210F02班 级: 学号: 陈程姓 名: 软件学院学 院: 软件工程专 业: 潘广贞 张英锋指导教师: 2013年 6 月基于Android的逃生游戏的开发与设计摘 要伴随着Google Android操作系统的盛行,国内外的开发团队也逐渐的壮大起来了,基于Android SDK的系统开发,基于Android应用的开发等已逐渐倍受大家关注,而手机游戏开发历来是移动开发中分量最重的部分,面对如此火爆的Android市场自然也不甘示弱,由于Android的应用层开发是基于Java的开发,所以必有其可以快速移植J2ME开

2、发的游戏的优势11,但是移植的游戏必定也不能发挥Android操作系统独特的特性,所以目前基于Android游戏开发的市场还是不够成熟的,面对这种情况,在了解Android SDK基础上,我打算开发一款适应于Android操作系统的逃生游戏。本游戏在Android平台下进行开发和设计,经测试,游戏的基本功能均实现,系统具有较好的视觉效果,并且操作简便。关键词:Android,逃生游戏,JavaThe design and development of Android based on escape gameAbstract Along with the Google Android opera

3、ting system prevailed, domestic and foreign development team also gradually grew up, the system development of Android based on SDK, Android application development has gradually attracted attention, and the mobile phone game development is always moving part of the development of the heaviest weigh

4、t, so unpopular with the Android market is not resigned to playing second fiddle due to the application layer, Android development based on Java development, so must have its can be quickly ported J2ME development of the game and the advantages of 11, but the Transplant Games must cannot play the un

5、ique characteristics of the Android operating system, so the current based on Android game development market is still not mature, in the face of this situation, in the understanding of Android SDK on the basis, I intend to develop a suitable Android operating system escape game.This game in Android

6、 platform is developed and designed, tested, basic function of game is realized, the system has good visual effect, and the operation is simple and convenient.Keywords: Android,Escape games,Java中北大学2013届毕业设计说明书目 录1 引言 1 1.1 课题研究背景 11.2 国内外研究现状及分析 11.3 论文主要内容22 开发环境介绍 42.1 Android简介 42.2 Android开发环境介

7、绍 52.3 Android开发平台搭建步骤 63 系统分析 123.1 系统需求分析 123.1.1功能性需求分析123.1.2安全性需求分析123.2 可行性分析 123.2.1技术可行性123.2.2经济可行性133.2.3操作可行性134 系统设计 144.1 系统结构设计144.2 数据库设计 144.3 地图设计 154.4 游戏界面 164.4.1游戏界面结构设计164.4.2注册界面164.4.3登录界面184.4.4用户选择界面184.4.5关卡选择界面19 第 页 共 页 4.4.6积分排行界面194.4.7游戏界面204.4.8游戏规则设计 215 系统实现 225.1

8、用户注册225.2 积分上传245.3 用户排名245.4 登录界面265.5 算法实现265.6 关卡选择276 系统测试286.1注册功能测试286.2关卡选择功能测试296.3游戏测试306.4积分排名测试32结论 33附录 34参考文献 40致谢 42 第 页 共 页 1 引言1.1 课题研究背景手机游戏成绩斐然,成为IT产业中增长最快的部分之一.纵观IT产业的历史,计算机游戏已经成为技术创新背后的动者渴望更加强大的硬件计算能力;渴望不受不的软件的限制,无论是将图形强制在人工智能(AI)上还是网络安全性。游戏开发者和玩家常常是前沿计算机技术的最早的采用者。由于他们的创新天性,游戏不再是

9、由大型采购公司控制的技术产品,游戏领域总是有充足的空间给那些在这方面有天分的单个创新者。随着技术对游戏经验的促进,游戏市场持续增长。商业IT革命为我们节省了时间力之一。计算机游戏和金钱,从而提高了我们的工作水平,我们因此花费更多的时间和金钱在游戏上,来改善生活的整体质量。甚至在当今困难的经济时代,游戏仍保持快速增长,他仍然是盈利行业的组成部分。Java开发者应该注意到这里蕴藏着的巨大的商机。随着人们生活质量的不断提高以及个人电脑和网络的普及,人们的业余生活质量要求也在不断提高,选择一款好玩,精美,画面和音质,品质优良的休闲游戏已经成为一种流行的休闲方式。可以说在人们的日常生活中,除了工作、学习

10、,玩自己喜欢的游戏正在成为一种时尚。而且休闲类游戏大概是覆盖年龄段最广的一类,休闲类游戏曾经给了不少玩家们一个美好的回忆,也是目前游戏平台非常广的一类游戏。所以,开发出大家都比较喜欢的,高品质的休闲互动游戏,将会受到人们的普遍欢迎。让人们在工作学习之余,享受游戏的快乐,也是一款游戏真正成功的意义。1.2 国内外研究现状及分析Android是由Google为首的OHA(Open Handset Alliance)推出的一款开放的嵌入式操作系统平台,从2008推出的android SDK1.0到现在,Android SDK的最新版本已经升级到了最新的2.3,Android正以前所未有的速度聚集着来

11、自世界各地的开发者,越来越多的创意被应用到Android应用程序的开发中,大有席卷整个手机产业的趋势4。说到Android系统,Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。5Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。由于Android带有相当浓郁的Linux血统这也就意味着他拥有开源Linux的众多优点:安全、运算速度快、易于开发等等13。正因为Android具有上述的优点,所以它

12、在国内具有相当强劲的竞争优势。青年网络的主要负责人潘长华先生说到:Android作为一款十分优秀的移动开发平台十分适合国内的开发环境。尤其是中小企业开发团队低成本以及源代码的分享可以为企业节省大量资金,这对于中小企业来说无疑是最大的诱惑。青年网络推出的星网睿话就是国内成功的Android开发产品14。同时一个资深的Android开发爱好者告诉记者:如果你是个人开发爱好者,那么Android就是Google为你量身打造的,放弃闭源的种种吧,开源才是王道,Android才是未来的主宰15。伴随着Google Android操作系统的盛行,国内外的开发团队也逐渐的壮大起来了,基于Android SD

13、K的系统开发,基于Android应用的开发等已逐渐倍受大家关注,而手机游戏开发历来是移动开发中分量最重的部分,面对如此火爆的Android市场自然也不甘示弱,由于Android的应用层开发是基于Java的开发,所以必有其可以快速移植J2ME开发的游戏的优势11,但是移植的游戏必定也不能发挥Android操作系统独特的特性,所以目前基于Android游戏开发的市场还是不够成熟的,面对这种情况,在了解Android SDK基础上,我打算开发一款适应于Android操作系统的逃生游戏。1.3 论文主要内容本课题实在android平台上开发一款逃生游戏,主要内容如下:(1)用户登录界面的设定:用户界面

14、上有进入游戏,关卡选择,积分排名,退出游戏选项。选择进入游戏选项可以进入游戏界面并进行游戏,选卡选择选项可以让用户选择不同难度的关卡满足用户的需要,积分排名选项可以让用户查询到自己的积分以及排名。(2)游戏界面的设定:选定了英雄和怪物的模型以及障碍物和奖励的道具模型。游戏界面上还有暂停,恢复和返回选项。暂停选项能使游戏界面活动停止,恢复选项则使游戏继续,返回选项可以使界面回到登录界面。(3)音乐:背景音乐和游戏音效。根据逃生游戏的主要功能模块图可以得到游戏的具体功能: 前台表示模块,包括欢迎界面模块和游戏界面模块。主要完成游戏的欢迎界面,以及游戏界面的绘制与控制。是与玩家最直接的接触的部分,也

15、是游戏可玩性的关键所在,其绘制机理是根据不同的游戏状态绘制不同的内容。游戏实体模块,包括英雄模块、怪物模块和运动动画模块。游戏的实体类英雄和怪物皆继承自一个公共的实体类,英雄由玩家控制,怪物按特定的寻径算法运动。后台逻辑模块,包括英雄运动模块和怪物运动模块。主要功能为逻辑实现玩家通过触摸手机屏幕控制英雄的移动,包括移动方向的改变以及移动速度等,怪物按照特定的寻径算法追踪英雄。游戏工具模块,包括图片管理模块和常量管理模块。工具模块是用来统一管理游戏中会用到的公共图片资源生成以及绘制,和游戏中用到的所有常量。在游戏的开发过程中,整体设计的主要原则是分散关注、松散结合、逻辑复用、标准定义。一个好的游

16、戏结构,可以使得开发人员的思路更明确。如果没有一个好的封装结构,则彼此的依赖性过强,一旦出现不好的情况其带来的负面影响很严重,而且代码的利用率不高。一个好的封装结构,降低了层与层之间的依赖性,既可以良好的保证未来的可扩展,又能复性使用和重复调用,即系统的可扩展性,又能复性使用和重复调用,即系统的可扩展性。在一定程度的标准化基础上,可替换类与类之间的关联必然保证了接口的标准化。2 开发环境及相关技术的介绍2.1 Android简介Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应

17、用软件组成。Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐

18、渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。APK是安卓应用的后缀,是AndroidPackage的缩写,即Android安装包(apk)。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。apk文件和sis一样,把android sdk编译的工程打包成一个安装程序文件,格式为apk。 APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码

19、而是Dalvik字节码。一个APK文件结构为:(1)META-INF (注:Jar文件中常可以看到);(2)res (注:存放资源文件的目录) ;(3)AndroidManifest.xml (注:程序全局配置文件) ;(4)classes.dex (注:Dalvik字节码);(5)resources.arsc (注:编译后的二进制资源文件)。总结下我们发现Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接执行安装,和Windows Mobile中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过dexdump命令可以反编译,但这样做符合发展规律,微软

20、的 Windows Gadgets或者说WPF也采用了这种构架方式。在Android平台中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后androidmanifest.xml文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。最终我们平时安装的文件可能不是这个文件夹,而在android rom中系统的apk文件默认会放入这个文件夹,它们拥有着root权限。2.2 Android开发环境介绍及优势Android的上层应用程序是用Java语言开发,所以Google公

21、司推荐使用主流的Java继承开发环境Eclipse。只有Eclipse还不够,因为使用Java语言开发,还应该有SUN公司提供的JAVA SDK。此外,Android的应用开发和Java开发有较大的区别,所以还需要有Google提供的Android SDK。同时,还需要在Eclipse安装ADT,为Android开发提供开发发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。简而言之,需要以下的软件,才能搭建Android开发环境,从而惊醒Android应用程序的开发:Java SDK,Eclipse,Android SDK,ADT。Android平台的优势:(1)开放性。在优势

22、方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。(2)不受束缚。在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从2007年iPhone上市后,用户可以更加方便地连接网络,

23、运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。(3)丰富的硬件。这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容,如同从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。(4)方便开发。Android平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰,可想而知,会有多少新颖

24、别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。2.3 Android开发平台搭建步骤(1)Eclipse安装下载回来的Ecplise(eclipse-java-juno-win32.zip)直接解压即可。(2)JDK安装运行下载回来的JDK安装包一路”下一步”即可。装好之后,配置环境变量:打开环境变量窗口方法:右键【我的电脑】-单击【属性】-单击【高级】-单击【环境变量】。在上方的用户变量中依次新建如下变量,并分别填入如下路径:变量名:JAVA_HOME变量值:C:Javajdk1.7.0_03如图2.1所示:图2.1 JAVA_HO

25、ME变量名:PATH变量值:%JAVA_HOME%/bin如图2.2所示:图2.2 PATH变量名:CLASSPATH变量值:.;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar如图2.3所示:图2.3 CLASSPATH(3)Android SDK安装重启完Ecplise后,点击菜单”Window”-”Preference”,打开了配置窗口,在左边选中Android,在右边输入Android SDK的路径,点击”OK”,至此环境配置完毕。如图2.4所示:图2.4 SDK安装(4)ADT安装启动安装完(解压)后的Ecplise目录下的Ecplis

26、e.exe;点击菜单”Help”-”Software Updates”,在打开的窗口中切换到选项页”Availabe Software”;点击”Add site”,加入以下地址: http:/dl- 然后点击”OK”;刚才加入的地址,点击”Install”进行ADT(Android Development Tools)的安装工作;Ecplise此时会从加入的地址中自动下载跟安装ADT,稍等一会,安装完毕后,提示需要重启Ecplise,点击”OK”重启Ecplise。如图2.5所示:图2.5 ADT安装(5)创建AVD创建、删除和浏览AVD之前,通常应该先为Android SDK在用户变量中新建

27、一个环境变量:变量名:ANDROID_SDK_HOME变量值:E:AndroidAndroid-SDK。而设置了环境变量【ANDROID_SDK_HOME】之后,开发者创建的虚拟设备则会被保存在%ANDROID_SDK_HOME%/.android路径下。即【ANDROID_SDK_HOME】所设置的路径下。然后打开window,点击AVD Manager,进入一个界面,如图2.6所示:图2.6 AVD Manager点击new,可以新建一个AVD,如图2.7所示:图2.7 NEW AVD选中一个AVD,点击start,再点击Lunch,会进入安卓虚拟模拟器界面。如图2.8所示图2.8 虚拟器

28、3 系统分析3.1 系统需求分析3.1.1功能性需求分析此次程序程序设计是基于Android平台下的逃生游戏,游戏界面良好,由于针对的是Android智能手机用户,所以游戏的操作也非常简单。该游戏准备以追杀游戏为主题材,内容为英雄躲避怪物的追杀,难度越高怪物越多,通关越多,积分也会越高,通关后会奖励命(或血),玩家触碰到怪物而且没有命(或血)时即定位游戏失败。基本功能有:(1)登录功能:设计自己的同户名登录到游戏中。(2)关卡选择功能:不同的关卡不同的难度供用户选择。(3)音乐功能:游戏音乐和音效,增强游戏的效果和可玩性。(4)积分排名功能:玩过游戏的玩家会在游戏上有自己的排名。3.1.2安全

29、性需求分析该游戏不涉及到用户的真实信息,所以不用担心用户信息的泄露,对用户不会造成损害。3.2 可行性分析3.2.1技术可行性Android系统平台是一个基于Linux开源的手机操作系统。它由Google公司在2007年11月5日正式发布的。Android平台是由操作系统、中间件、界面和应用软件组成。是第一个要为移动终端创造的一款真正开放的完整的操作系统。说道Android操作系统平台的优势,不得不提到最突出的两个特点“免费”和“开源”。免费:Android免费提供其操作系统,让移动过电话制造商可以免费搭载Android操作系统,使得手机的制作成本大大降低,渐渐使得Android普及。开源:A

30、ndroid手机制作操作系统代码的开放性,不仅让开发者可以在统一开放平台进行程序开发,而且可以解决现今市场不同智能机之间因文件格式不同造成的信息交流不便、程序内容无法移植等问题;并且Android的开机源码就意味着手机使用者不必在被动地接受移动电话制造商默认的设施和环境,使用者完全可以根据自己的想法自定义手机的配置。通过学习的Java和Android以及数据库方面的知识,可以完成逃生游戏。3.2.2经济可行性一个项目的开发成本、运行费用和收益这些经济因素决定了该系统是否值得的做,只有投资预计能带来利润的系统才值得进一步去考虑。该系统的开发使用的是已经很成熟的技术和语言,系统的操作和维护都很简单

31、和方便,这些都表明了该系统是一个低成本的系统,该系统的运行费用很低,完成此游戏基本只需要一台PC机,经济上不需要很大的投入,所以是可行的。3.2.3操作可行性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足用户的需求。设计开发中一直注重系统操作的简单方便,操作方式都非常人性化,由于Android可以和Eclipse配置开发环境,且开发环境为开源的,所以操作上是可行的。4 系统设计4.1 系统结构设计本课题采用的是才C/S结构,即客户机和服务器结构,它是软件系统体系结构,通过它可以充分利用两端硬件环境的优

32、势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。4.2 数据库设计E-R图提供了表示实体型、属性和联系的方法:实体型:用矩形表示,矩形内写明实体名。属性:用椭圆表示,并用无向边将其与相应的实体连接起来。联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。逃生游戏所涉及的主要实体及其属性有:users(UID,username,password,score,maxle

33、vel)逃生游戏E-R模型如图4.1所示图4.1 用户信息根据以上的分析,将E-R模型转换成逻辑模型,设计出本系统数据库。根据需要,设计了一个数据表。该表记录了用户的基本信心,包括用户编号,用户姓名,密码,最高得分,最大关卡数。该表结构如表4.1所示表4.1 Users字段名数据类型字段说明UIDint主键usernamevarchar用户名passwordvarchar密码scoreint最高分数maxlevelint最大关卡数4.3 地图设计本游戏是逃生游戏,每一个关卡都设置成一个迷宫。迷宫的具体原理是:用1,0表示。1为地图上能走的通道,0为墙。如图4.2所示:图4.2 迷宫地图图中3,

34、3为人的位置,15,1为怪物的位置,15,7为出口。4.4 游戏界面4.4.1游戏界面结构设计游戏界面结构设计如图4.3所示:图4.3游戏界面结构4.4.2注册界面注册界面包括UserName,PassWord两个文本框和Rregister和Back两个按钮,UserName最少为4个字符,而且当一个人注册一个用户名后,别人无法再用此帐号注册,否则注册失败。 如图4.4所示: 图4.4 注册图4.5 注册成功4.4.3登录界面图4.6 登录4.4.4 用户选择界面用户界面分为三个选项Start Game,High Score和Exit Game,点击Start Game按钮会进入关卡选择界面,

35、点击High Score按钮会进入积分排行界面,查询积分排名,点击Exit Game按钮就会推出游戏。如图4.7所示:图4.7 用户选择4.4.5 关卡选择界面关卡一共分为十关,每关难度不同,每通一关都会有通关奖励。如图4.7所示:图4.8 关卡选择4.4.6 积分排行界面积分排行界面显示最高分的五个人的排名,每通关一个关卡,都会生成一个积分,根据就通关关数的多少可以得到不同的积分,然后生成的积分会上传到服务器自动生成排行。如图4.8所示:图4.9 积分排行4.4.7 游戏界面游戏界面时一个迷宫地图,途中又一个英雄角色和一个怪物角色,怪物会自动追踪英雄,右上缴显示关卡,生命数和生成的积分,如图

36、4.10所示:图4.10 游戏界面当英雄用完自己的生命,就会结束游戏,进入游戏结束界面,并显示自己的积分。如图4.11所示:图4.11 游戏结束4.4.8游戏规则设计逃生游戏准备以追杀游戏为主题材,内容为英雄躲避怪物的追杀,难度越高怪物越多,通关越多,积分也会越高,通关后会奖励命(或血),玩家触碰到怪物而且没有命(或血)时即定位游戏失败。(1)游戏角色不能触碰到怪物,触碰到怪物即为失败。(2)游戏有很多关卡,通过的关卡越多,积分越高。(3)游戏是一个迷宫地图,玩家要想办法躲避怪的同时找到出口即通关成功,会获得奖励。第 21 页 共 42 页5 系统实现5.1 用户注册用户注册分为服务端和客户端

37、两部分。(1)服务端服务端代码如图5.1所示。图5.1 用户注册服务端部分代码通过$_POST取得提交的用户名和密码,使用insert语句插入数据库中。由于数据库已经对相关的字段进行了设置,因此不会插入重复的用户名。如果插入成功,则表明用户注册成功,此时则返回true,否则,返回false。(2)客户端当用户在游戏的用户注册页面,点击“Register”按钮后,程序将调用void regPressed(CCObject*,CCControlEvent)函数,函数代码如图5.2所示。图5.2 void regPress(CCObject*,CCControlEvent)函数实现该函数向服务端提交

38、用户注册请求,服务端收到请求会会返回执行结果(true或false),当执行结果返回后,会自动调用服务端的回调函数httpCallBack(),该回调函数会判断服务端返回的执行结果,如果注册成功,则会调用success()函数,否则,会调用faild()函数(两函数的代码如图5.3和图5.4所示),这两个函数分别会向用户展示注册成功提示和注册失败提示。当点击返回后,前者会返回到登陆界面,后者会返回到注册界面。图5.3 void success()函数代码图5.4 void faild()函数代码5.2 积分上传 积分上传服务端代码如图5.5所示:图5.5 积分上传服务端代码积分上传采用的是数据

39、库中的Update方法。Update语句用于修改表中的数据。Update的语法是UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值例如:Update Users set password = 234567 where username = xiaoming 用户玩完游戏后会自动生成一个积分,积分会上传到score里。5.3 用户排名用户排名服务端代码如图5.6所示:图5.6 积分排名服务端代码用户排名采用的是数据库中的select方法。Select语句用于从表中选取数据,结果被存在一个结果表中。Select的语法是SELECT 列名称 FROM 表名称SELECT *

40、 FROM 表名称例如:Seclect username,score from Users每个用户玩完游戏后都会生成自己的积分,然后积分上传到score里,score里的积分会按从大到小的顺序排名,然后用户通过查询会得到自己的积分排名。5.4登录界面登录界面分为服务端和客户端两部分。(1) 服务端服务端代码如图5.7所示:图5.7 登录界面服务端通过$_POST取得提交的用户名和密码,使用select从数据库中找到注册的用户名和密码。由于数据库已经对相关的字段进行了设置,因此不会插入重复的用户名。如果用户名存在,并且密码正确,则用户登录成功,此时则返回true,否则,返回false。5.5 算

41、法实现本游戏运用的是回溯算法,也叫试探法,它是一种系统地搜索问题的解的方法。用回溯算法解决问题的一般步骤:(1)针对所给问题,定义问题的解空间,它至少包含问题的一个(最优)解。(2)确定易于搜索的解空间结构,使得能用回溯法方便地搜索整个解空间 。(3)以深度优先的方式搜索解空间,并且在搜索过程中用剪枝函数避免无效搜索。问题的解空间通常是在搜索问题解的过程中动态产生的,这是回溯算法的一个重要特性。确定了解空间的组织结构后,回溯法就从开始结点(根结点)出发,以深度优先的方式搜索整个解空间。这个开始结点就成为一个活结点,同时也成为当前的扩展结点。在当前的扩展结点处,搜索向纵深方向移至一个新结点。这个

42、新结点就成为一个新的活结点,并成为当前扩展结点。如果在当前的扩展结点处不能再向纵深方向移动,则当前扩展结点就成为死结点。此时,应往回移动(回溯)至最近的一个活结点处,并使这个活结点成为当前的扩展结点。回溯法即以这种工作方式递归地在解空间中搜索,直至找到所要求的解或解空间中已没有活结点时为止。5.6 关卡实现关卡选择代码如图5.7所示:图5.7 关卡选择关卡选择设置成十个关卡,Level01到Level10,每一关有不同的难度。6 系统测试首先打开手机wifi热点,电脑连上手机wifi,确定手机连上电脑上的数据库。保证游戏可以运行。6.1 注册功能测试当输入UserName为CHEN,PassW

43、ord为123456时,点Register注册成功。运行正常。当再次输入UserName为CHEN,PassWord为234567时,点Register注册失败,运行正常。当输入UserName为CHENG,PassWord为123456时,点Register注册成功,运行正常。如图6.1所示:图6.1 注册功能测试图6.2 注册成功图6.3 注册失败6.2 关卡选择功能测试当登录成功时,进入游戏选择界面,有三个选项,分别为Start Game,High Score和Exit Game。点击Start Game,进入关卡选择界面Choose Level,界面上有十关,Level 01到Leve

44、l 10。当点击Level 01时,进入游戏界面,运行正常。分别点击其他关卡,进入游戏界面,运行正常。如图6.4所示:图6.4 关卡选择功能测试6.3 游戏测试当进入游戏界面,怪物会随着角色的移动而选择路径,追踪算法功能运行正常。当角色碰到怪物时,角色会少一条命,life自动少1,怪物回到起始出发点。当角色通关时,游戏会奖励角色一条命,life自动增1,生成积分,并进入下一关卡,运行正常。当life为0时,游戏结束,运行正常。如图6.5所示:图6.5 游戏第一关测试图6.6 游戏第三关测试图6.7 游戏结束测试6.4 积分排名测试当使用test用户游戏结束时Score为1800,当使用CHEN

45、用户游戏结束时,Score为1300,积分排名。如图6.8所示:图6.8 积分排名测试7 结 论经过三个月的学习和实践,终于初步完成了我的课题。刚看到自己的毕业设计题目时,自己都被吓了一跳,本来就对Android不熟悉,再加上逃生游戏需要完成注册,积分查询,追踪算法等功能,感觉自己很难完成。但是,我还是努力的去完成它,不断的查询资料,看书,慢慢的在同学和指导老师的帮助下,逐步实现了逃生游戏的基本功能,让我很有成就感。在此次逃生游戏的开发与设计中,首先我学会并熟悉掌握了搭建Eclipse和Android开发环境的步骤,然后逐渐的在编写程序,修改程序中的错误,现在虽然基本已经完成所有功能,但肯定还

46、有很多不足,而且我也发现自己数据库方面的知识很欠缺,需要不断的加强。游戏的美工也有很多不足,只能在以后努力提高自己这些方面的能力。本游戏最终能在android手机上运行,需要电脑绑定手机wifi热点,手机可以连上电脑里的数据库,后期就是要测试游戏,修改游戏中的漏洞。8 附 录追踪算法实现代码:void Manager:newGame()m_level+;left_life+;player = levelm_level.player;monster = levelm_level.monster;m_last_catch = false;Manager* Manager:shareManager(

47、)if(instance = NULL)instance = new Manager();return instance;void Manager:release()if(instance != NULL)delete instance;instance = NULL;void Manager:setLevel(int level)if(level = 0)m_level = level-1;elsem_level = 8;int Manager:getLevel()return m_level;Manager:LEVEL Manager:getLevelInfo()return levelm

48、_level;bool Manager:move(Direct dir)bool ret = false;if(isGameOver() | isPass() )return ret;LEVEL map = levelm_level;switch(dir)case up:if( player.y 0 & map.mapplayer.y - 1player.x 0)player.y-;ret = true;break;case down:if( player.y 0)player.y+;ret = true;break;case left:if( player.x 0 & map.mapplay

49、er.yplayer.x - 1 0)player.x-;ret = true;break;case right:if( player.x 0)player.x+;ret = true;break;if( isPass() )m_score += (m_level * 100 + left_life * 100) ;return ret;Manager:POINT Manager:getPlayer()return player;Manager:POINT Manager:getMonster()return monster;Manager:POINT Manager:getWay()memc

50、py(tmp_map, getLevelInfo().map,sizeof( getLevelInfo().map);/获得全部可行路径findWay(monster, player);int len;int index = 0;if(ways.size() 0)len = waysindex-size();/选择最短路径for(int i = 1; i size() size();index = i;POINT ret ;if(len 1)ret = (*waysindex)1;elseret = (*waysindex)0;while(ways.size() 0)std:vector* t

51、p = waysways.size()-1;delete tp;ways.pop_back();monster.x = ret.x;monster.y = ret.y;if(player.x = monster.x & player.y = monster.y)left_life -;m_last_catch = true;elsem_last_catch = false;return ret;void Manager:findWay(POINT pos, POINT target)way.push_back(pos);if(pos.x = target.x & pos.y = target.

52、y)ways.push_back( new vector(way);way.pop_back();return;int x = pos.x;int y = pos.y;if(tmp_mapyx = 1)tmp_mapyx = 2;POINT tmp_point4 = x - 1, y,x + 1, y,x, y + 1,x, y - 1;for(int i = 0; i = 0 & tmp_pointi.x = 0 & tmp_pointi.y = 15& tmp_maptmp_pointi.ytmp_pointi.x = 1)findWay(tmp_pointi,target);if(tmp

53、_mapyx = 2)tmp_mapyx = 1;way.pop_back();return;参 考 文 献1 李刚. 疯狂Android讲义M. 北京:电子工业出版社. 20002 叶达峰编著.Eclipse编程技术与实例M. 人民邮电出版社, 20063 孟晓龙. Win7系统下Android开发平台的搭建J. 科协论坛(下半月). 2011(08)4 陈淮. 基于Android游戏开发中常用类库的设计与实现D. 西安电子科技大学 20115 公磊,周聪.基于Android的移动终端应用程序开发与研究J.计算机与现代化. 2008(08)6 朱成亮. 基于Android平台游戏引擎的设计与

54、实现D. 安徽理工大学 20117 韩曼娜. 移动电子商务的APP浪潮N. 电脑报. 2011-07-04 (A04)8 李晓延. 手机操作系统的战国时代J. 今日电子. 2010(09)9 胡强. Android野蛮增长背后没有大赢家N. 通信产业报. 2010-12-06 (037)10 武晓黎. 安卓的春天危机隐现N. 中国消费者报. 2011-03-30 (C04)11 张炯. 手机操作系统变局J. 互联网周刊. 2007(Z1)12 蓝齐. 找不到Android业务模式戴尔彻底放弃智能手机J. IT时代周刊. 2013(01)13 张鹏. 中国企业为什么青睐Android?J. 通信世界. 2010(03)14 Android五年内将主导智能手机市场N. 中国计算机报. 20

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!