基于android的连连看游戏的设计与实现_第1页
基于android的连连看游戏的设计与实现_第2页
基于android的连连看游戏的设计与实现_第3页
基于android的连连看游戏的设计与实现_第4页
基于android的连连看游戏的设计与实现_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

基于ANDROID的连连看游戏的设计与实现摘要手机等移动设备的发展使人类进入了一个全新的世界,人与人之间可以远隔万里为了同一兴趣爱好而交流,做到了游戏无国界。随着手机的不断发展,手机游戏作为一个新的名词融入到了人们的日常生活当中。手机游戏产业作为现代电子技术的产物,正在以其独特的魅力在全世界的娱乐领域占据主流位置,我们在承认广大娱乐网民的选择空间狭小的同时,也必须明确的一点就是手机游戏本身所具有的强大的吸引力。手机游戏的吸引力主要在于,它在让玩家打发时间的同时,可以让人实现在显示生活中不能实现的理想,得到在显示中不能得到的东西。而且手机游戏产业促动高科技技术不断升级,作为经济增长的一大支撑点,已经成为经济腾飞的重要支柱。近年来,世界手机游戏市场高速发展。根据统计,全球手机游戏玩家所占互联网人群的比例已经超过30。手机游戏凭借其信息双向交流,速度快,不受空间限制等互联网优势,具有诱人的互动性、仿真性和竞技性,已经成为网络业盈利优厚的三大领域之一。网络平台的发展,为手机游戏奠定了坚实的“物质”基础。手机的迅猛发展为手机游戏提供了“高速公路”,而专用游戏服务器则为手机游戏提供了容量巨大的“加油站”。前不久,手机游戏还被视为一个“高风险”的行业,但随着人们对手机游戏的重新认识,手机游戏正在恢复其应有的地位。实现了从游戏设计,界面开发,到游戏的设计,功能的测试;基本实现了ANDROID游戏连连看的功能流程。本游戏界面简单直观,易于操作,完全基于ANDROID系统。经过分析,我使用了SUN公司的JSP开发工具,利用其提供的各种面向对象的开发工具,首先建立应用原型,然后对初始原型系统进行需求迭代,不断修正和改进,直至形成满意的可行系统。关键字连连看、手机游戏、ANDROID平台。DESIGNANDIMPLEMENTATIONBASEDANDROIDSNAKEGAMEABSTRACTDEVELOPMENTOFMOBILEPHONESANDOTHERMOBILEDEVICESTOMAKEMANKINDINTOANEWWORLDORDERCANBESEPARATEDBYTHOUSANDSOFMILESANDCOMMUNICATETHESAMEHOBBIES,SOTHEGAMEWITHOUTBORDERSBETWEENPEOPLEWITHTHECONTINUOUSDEVELOPMENTOFMOBILEPHONES,MOBILEPHONEGAMESASANEWTERMINTOPEOPLESDAILYLIFEMOBILEGAMEINDUSTRYASAPRODUCTOFMODERNELECTRONICTECHNOLOGY,ISITSUNIQUECHARMINTHEWORLDOFENTERTAINMENTTOOCCUPYTHEMAINSTREAMPOSITION,WERECOGNIZETHEMAJORITYOFINTERNETUSERSCHOOSETHEENTERTAINMENTSPACEISSMALL,BUTALSOMUSTBECLEARPOINTISTHATTHEGAMEITSELFHASAMOBILEPHONETHEPOWERFULATTRACTIONTHEMAINATTRACTIONOFMOBILEGAMESISTHATITALLOWSPLAYERSTOPASSTHETIMEATTHESAMETIME,PEOPLECANACHIEVEINTHEDISPLAYIDEALCANNOTBEACHIEVEDINLIFE,TOGETINTHEDISPLAYCANNOTGETSOMETHINGANDMOBILEGAMESINDUSTRYACTUATIONESCALATINGHIGHTECHNOLOGYASAMAJORANCHOROFECONOMICGROWTH,HASBECOMEANIMPORTANTPILLAROFECONOMICTAKEOFFINRECENTYEARS,THERAPIDDEVELOPMENTOFTHEWORLDSMOBILEPHONEGAMEMARKETACCORDINGTOSTATISTICS,THEPROPORTIONOFMOBILEGAMERSWORLDWIDEINTERNETPOPULATIONHASEXCEEDED30MOBILEGAMESBYVIRTUEOFITSTWOWAYEXCHANGEOFINFORMATION,FAST,WITHOUTSPACECONSTRAINTSANDOTHERINTERNETADVANTAGES,WITHATTRACTIVEINTERACTIVE,SIMULATIONANDCOMPETITIVENATURE,HASBECOMEONEOFTHETHREEAREASOFFAVORABLEEARNINGSNETWORKINGINDUSTRYNETWORKDEVELOPMENTPLATFORMFORMOBILEGAMESHASLAIDASOLID“MATERIAL“BASISTHERAPIDDEVELOPMENTOFMOBILEPHONESFORTHEMOBILEGAMEPROVIDESA“HIGHWAY“,ANDDEDICATEDGAMESERVERCAPACITY,COMPAREDWITHMOBILEGAMESOFFERENORMOUS“GASSTATION“NOTLONGAGO,MOBILEGAMINGWASSEENASA“HIGHRISK“OFTHEINDUSTRY,BUTASPEOPLEREUNDERSTANDINGOFMOBILEGAMES,MOBILEGAMESAREBEINGRESTOREDTOITSRIGHTFULPLACEACHIEVEATESTFROMGAMEDESIGN,INTERFACEDEVELOPMENT,TOGAMEDESIGN,FUNCTIONBASICREALIZATIONANDROIDGAMELIANLIANKANFUNCTIONPROCESSESTHEGAMEINTERFACEISSIMPLEANDINTUITIVE,EASYTOOPERATE,BASEDENTIRELYONTHEANDROIDSYSTEMAFTERANALYSIS,IUSETHESUNSJSPDEVELOPMENTTOOLS,USINGAVARIETYOFOBJECTORIENTEDDEVELOPMENTTOOLSITPROVIDES,FIRSTCREATEAPROTOTYPEAPPLICATION,THENTHEINITIALPROTOTYPEOFTHESYSTEMNEEDSTOCONSTANTLYREVISEANDIMPROVEUNTILASATISFACTORYVIABLESYSTEMKEYWORDLINKLINKGAME,MOBILEGAMES,ANDROIDPLATFORM目录摘要IABSTRACTII第1章绪论611课题研究意义612论文结构安排613本章小结7第2章基础知识与开发技术821ANDROID技术简介8211ANDROID基本知识8212ANDROID系统特点8213ANDROID手机平台的优势922JAVA技术简介1023本章小结11第3章系统分析与设计1231可行性分析12311操作可行性12312技术可行性12313经济可行性12314社会可行性1232功能需求分析1333系统基本流程1334系统模块设计1334消息响应设计1535图形连通算法设计1536系统风格定位1637本章小结16第4章系统的设计与实现1741系统运行界面图1742开发环境的搭建2043部分代码2044本章小结39第5章系统测试与性能4051软件测试40511测试简介40512测试分类40513测试步骤4052游戏系统测试4153游戏性能分析4254本章小结42第6章总结与展望4361结论4362进一步工作方向43参考文献44致谢45英文原文及翻译46第1章绪论2007年11月由GOOGLE牵头有30多家移动技术和无线应用领域领先企业组成的开放手机联盟OPENHANDSETALLIANCE发布了其智能手机平台ANDROID。ANDROID是一个真正意义上的开放性移动设备综合平台,它包括操作系统、用户界面、中间件和应用程序,拥有移动电话工作所需的全部软件,同时其开放性保证该平台不存在任何阻碍移动产业创新的专有权障碍。游戏产业作为现代电脑电子技术的产物,正在以其独特的魅力在全世界的娱乐领域占据主流位置,我们在承认广大娱乐网民在选择空间狭小的同时,也必须明确的一点就是游戏本身所具有的强大的吸引力。它在让玩家打发时间的同时,可以让人实现在显示生活中不能实现的理想,得到在现实中不能得到的东西。而且游戏产业促动高科技技术不断升级,作为经济增长的一大支撑点,已经成为经济腾飞的“第四产业”。本设计将使用JAVA语言和ANDROID平台实现出可以在模拟器上运行的连连看游戏。11课题研究意义现在小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。连连看游戏就是典型了游戏“连连看”,只要将相同花色的两张图用三根以内的直线连在一起就可以消除,规则简单容易上手。游戏速度节奏快,画面清晰可爱,老少皆宜。不管你走到哪个游戏网站,连连看游戏总是排在受玩家欢迎排名的前5位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女老少、工薪白领,是一款适合大众的经典网络休闲小游戏。完成这次毕业设计,不仅可以提高我对知识的综合运用能力,增加实现项目设计的经验,同时让我深入地了解一个安卓游戏的基本制作过程以及各项功能的实现,拓宽了自己的知识面。通过完成一个比较完善的安卓游戏,我对图像编辑、程序设计等各方面的知识有了更深的理解,也为以后的工作和学习打下了很好的铺垫。12论文结构安排整篇论文共分为六章,其主要内容安排如下第1章绪论。介绍论文的选题背景,系统的基本功能的实现以及论文结构的安排。包括课题的背景资料简介、国内外研究现状和发展趋势、深入地介绍了课题研究的价值以及对未来的影响。为本系统的编写调试提供了强大的理论依据。第2章基础知识和相关的开发技术。这部分主要是介绍实现系统的技术支撑体系和系统的开发方法。包括开发模型,ANDROID技术和JAVA技术等,并且详细介绍了ANDROID的基本知识、各种特点、ANDROID平台的优势和手机游戏开发的市场价值以及JAVA开发的详细步骤和游戏使用的主要技术及问题。第3章系统可行性研究与需求分析。本章概要地阐述了本系统的体系结构,描述了各个功能模块,并分析了系统功能与系统角色和流程分析,展示了本系统的流程图,为下一章的系统的设计与实现打下基础。第4章系统的设计和实现。这部分主要介绍了本章通过对基于ANDROID的连连看游戏的各个功能的实现,描述了系统的设计理念、基本流程和风格定位,展示了各个模块的模型和界面图,全面深刻的解析了该系统所具有的全部功能极其实现的方法。对每个界面的设计以及思路进行了详细的解释第5章系统测试与性能分析。描述了软件测试的基本方法、测试的总类和测试的步骤,对游戏进行了的系统测试和性能上的分析,达到了需求分析中的功能要求,实现了连连看游戏的设计。以上标志着本次基于ANDROID的连连看游戏的设计与实现工作成功的完成。第6章总结。对整篇论文加以总结与回顾以及对未来的展望。13本章小结第一章主要是对课题的总体介绍,包括课题的背景资料简介、国内外一些研究的现状成果和发展趋势、还深入地介绍了课题研究的价值以及对未来的影响。为本系统的编写调试提供了强大的理论依据。第2章基础知识与开发技术21ANDROID技术简介211ANDROID基本知识ANDROID是一种基于LINUX的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由GOOGLE公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。ANDROID操作系统最初由ANDYRUBIN开发,主要支持手机。2005年8月由GOOGLE收购注资。2007年11月,GOOGLE与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良ANDROID系统。随后GOOGLE以APACHE开源许可证的授权方式,发布了ANDROID的源代码。第一部ANDROID智能手机发布于2008年10月。ANDROID逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,ANDROID在全球的市场份额首次超过塞班系统,跃居全球第一。2013年的第四季度,ANDROID平台手机的全球市场份额已经达到781。12013年09月24日谷歌开发的操作系统ANDROID在迎来了5岁生日全世界采用这款系统的设备数量已经达到10亿台。ANDROID一词的本义指“机器人”,同时也是GOOGLE于2007年11月5日宣布的基于LINUX平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。ANDROID一词最早出现于法国作家利尔亚当(AUGUSTEVILLIERSDELISLEADAM)在1886年发表的科幻小说未来夏娃(LVEFUTURE)中。他将外表像人的机器起名为ANDROID。ANDROID的LOGO是由ASCENDER公司设计的,诞生于2010年,其设计灵感源于男女厕所门上的图形符号,1于是布洛克绘制了一个简单的机器人,它的躯干就像锡罐的形状,头上还有两根天线,ANDROID小机器人便诞生了。其中的文字使用了ASCENDER公司专门制作的称之为“DROID”的字体。ANDROID是一个全身绿色的机器人,绿色也是ANDROID的标志。颜色采用了PMS376C和RGB中十六进制的A4C639来绘制,这是ANDROID操作系统的品牌象徵。有时候,它们还会使用纯文字的LOGO。12012年7月美国科技博客网站BUSINESSINSIDER评选出二十一世纪十款最重要电子产品,ANDROID操作系统和IPHONE等榜上有名。212ANDROID系统特点ANDROID系统具有如下5个特点1开放性。GOOGLE与开放手机联盟合作开发了ANDROID,GOOGLE通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。2应用程序无界限。ANDROID上的应用程序可以通过标准API(APPLICATIONPROGRAMMINGINTERFACE,应用程序编程接口)访问核心移动设备功能。通过互联网,应用程序可以声明它们的功能可供其他应用程序使用。3应用程序是在平等的条件下创建的。移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件。4应用程序可以轻松地嵌入网络。应用程序可以轻松地嵌入HTML、JAVASCRIPT和样式表,还可以通过WEBVIEW显示网络内容。5应用程序可以并行运行。ANDROID是一种完整的多任务环境,应用程序可以在其中并行运行。在后台运行时,应用程序可以生成通知以引动注意。每个ANDROID应用程序都存在于它自己的世界之中默认情况下,每个应用程序均运行于它自己的LINUX进程中。当应用程序中的任意代码开始执行时,ANDROID启动一个进程,而当不再需要此进程而其它应用程序又需要系统资源时,则关闭这个进程。每个进程都运行于自己的JAVA虚拟机(VM)中。所以应用程序代码实际上与其它应用程序的代码是隔绝的。默认情况下,每个应用程序均被赋予一个唯一的LINUX用户ID,并加以权限设置,使得应用程序的文件仅对这个用户、这个应用程序可见。当然,也有其它的方法使得这些文件同样能为别的应用程序所访问。使两个应用程序共有同一个用户ID是可行的,这种情况下他们可以看到彼此的文件。从系统资源维护的角度来看,拥有同一个ID的应用程序也将在运行时使用同一个LINUX进程,以及同一个虚拟机。213ANDROID手机平台的优势现在常见的智能手机平台有SYMBIAN、WINDOWSMOBILE、PALM、BLACKBERRY、IOS等。ANDROID平台的优势主要体现在以下方面1开放性ANDROID平台是开放性的平台,允许任何移动终端厂商加入到ANDROID联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开放性对于ANDROID的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。2挣脱运营商的束缚在过去很长的一段时间,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都要受到运营商的控制。自从ANDROID上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不再是运营商口中的笑谈。3丰富的硬件选择这一点还是与ANDROID平台的开放性相关。由于ANDROID的开放性,众多的厂商会推出千奇百怪,功能特色各异的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。例如你从诺基亚SYMBIAN风格手机一下改用苹果IPHONE,同时还可SYMBIAN中优秀的软件带到IPHONE上使用、联系人等个人资料更是可以方便地转移。4开发手机软件不受任何限制ANDROID平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻扰,可想而知,如此一来会有多少新颖别致的软件诞生。5无缝结合的GOOGLE应用如今叱咤互联网的GOOGLE已经走过了10年度的历史。从搜索巨人到全面的互联网渗透,GOOGLE服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而ANDROID平台手机将无缝结合这些优秀的GOOGLE服务。正因为ANDROID具有以上的优越性,所以2010年末数据显示,仅正式推出两年ANDROID操作系统就将要超越称霸十年的诺基亚SYMBIAN系统,使之跃居全球最受欢迎的智能手机平台。22JAVA技术简介ANDROID以JAVA作为开发语言,JDK是进行JAVA开发时必需的开发包。JAVA是由SUNMICROSYSTEMS公司于1995年5月推出的JAVA面向对象程序设计语言(以下简称JAVA语言)和JAVA平台的总称。由JAMESGOSLING和同事们共同研发,并在1995年正式推出。JAVA最初被称为OAK,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为JAVA,并重新设计用于开发INTERNET应用程序。用JAVA实现的HOTJAVA浏览器(支持JAVAAPPLET)显示了JAVA的魅力跨平台、动态的WEB、INTERNET计算。从此,JAVA被广泛接受并推动了WEB的迅速发展,常用的浏览器均支持JAVAAPPLET。另一方面,JAVA技术也不断更新。2010年ORACLE公司收购了SUN与传统程序不同,SUN公司在推出JAVA之际就将其作为一种开放的技术。全球数以万计的JAVA开发公司被要求所设计的JAVA软件必须相互兼容。“JAVA语言靠群体的力量而非公司的力量”公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。SUN公司对JAVA编程语言的解释是JAVA编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。JAVA平台是基于JAVA语言的平台。这样的平台非常流行。因此微软公司推出了与之竞争的NET平台以及模仿JAVA的C语言。JAVA是功能完善的通用程序设计语言,可以用来开发可靠的、要求严格的应用程序。抽象类规定一个或多个抽象方法的类别本身必须定义为ABSTRACT,抽象类只是用来派生子类,而不能用它来创建对象。FINAL类又称“最终类”,它只能用来创建对象,而不能被继承,与抽象类刚好相反,而且抽象类与最终类不能同时修饰同一个类。包JAVA中的包是相关类和接口的集合,创建包须使用关键字PACKAGE。多态类在JAVA中,对象变量是多态的。而JAVA中不支持多重继承。接口JAVA中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。JAVA中的每一个类都是从OBJECT类扩展而来的。OBJECT类中的EQUAL和TOSTRING方法。EQUAL用于测试一个对象是否同另一个对象相等。TOSTRING返回一个代表该对象的字符串,每一个类都会从OBJECT类继承该方法,有些类重写了该方法,以便返回当前状态的正确表示。(TOSTRING方法是一个很重要的方法)通用编程任何类类型的所有值都可以同OBJECT类型的变量来代替。封装就是把数据和行为结合起在一个包中,并对对象使用者隐藏数据的实现过程,一个对象中的数据叫他的实例字段(INSTANCEFIELD)。重载当多个方法具有相同的名字而含有不同的参数时,便发生重载。编译器必须挑选出调用哪个方法进行编译。重写也可称为方法的“覆盖。”在JAVA中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。值得注意的是,子类在重新定义父类已有的方法时,应保持与父类完全相同的方法头声明。数组列表ARRAYLIST动态数组列表,是一个类库,定义在JAVAUTIL包中,可自动调节数组的大小。CLASS类OBJECT类中的GETCLASS方法返回CLASS类型的一个实例,程序启动时包含在MAIN方法的类会被加载,虚拟机要加载他需要的所有类,每一个加载的类都要加载它需要的类。基本语法编辑编写JAVA程序时,应注意以下几点大小写敏感JAVA是大小写敏感的,这就意味着标识符HELLO与HELLO是不同的。类名对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如MYFIRSTJAVACLASS。方法名所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。源文件名源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记JAVA是大小写敏感的),文件名的后缀为JAVA。(如果文件名和类名不相同则会导致编译错误)。主方法入口所有的JAVA程序由PUBLICSTATICVOIDMAINSTRINGARGS方法开始执行。23本章小结本章介绍了本系统的开发环境,系统的开发方法,并且详细介绍了ANDROID的基本知识、各种特点、ANDROID平台的优势和手机游戏开发的市场价值以及JAVA技术简介、开发的详细步骤和游戏使用的主要技术及问题。第3章系统分析与设计31可行性分析311操作可行性游戏的操作可行性其实是一个游戏成功与否的关键,在很多著名游戏中游戏操作合理性经常成为玩家讨论的焦点,所以说游戏设计的合理性既是需要考虑的关键也是对玩家选择此游戏的主要吸引力。游戏时间不能过长也不能过短,在经过反复思考和老师的指导后,决定将时间做成第一关100秒左右,往后逐渐递减。这一决定保证了游戏的正常完成,同时也是考虑到了制作时间的限制。在“连连看游戏”设计中,在游戏中玩家可以通过每消去两个图片,都可以得到增加游戏剩余时间的机会。而在进入第二关后,随着游戏复杂性和难度的提升,再加上游戏时间的逐渐减少,因而在这样的设计下,玩家可以感受到游戏的可玩性,同时也可以享受到完成游戏的成就感。312技术可行性ANDROID以JAVA作为开发语言,JDK是进行JAVA开发时必需的开发包。进行开发前先要建立合适的开发环境,其中基于JAVA的整合型可扩展平台ECLIPSE是我们的首选。ECLIPSE是一款非常优秀的开源IDE,GOOGLE官方也提供了基于ECLIPSE的ANDROID开发插件ADT,ANDROID平台为开发者提供了源码开放的软件开发包SDK,它包含了使用JAVA语言开发ANDROID平台应用的必要工具和组件API。在大量插件的配合下,完全可以满足从企业级JAVA应用到手机终端JAVA游戏的开发。ECLIPSE是一款很好的动画游戏制作软件。它完全符合面向对象编程的要求,大大的提升了程序编写的能力。而且在ECLIPSE软件中,它自带了一些常用的组件。这为我们对这各组件开发提供了很大的帮助。因此在技术上是可行的。313经济可行性开发该系统所需的相关资料可以通过已存在的相关系统进行调查采集,所需的其他应用软件、硬件系统也易于获得因此,开发成本较低。而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。所以,从经济的角度来看,该系统可行。314社会可行性本游戏丰富的道具和公共模式的加入,增强游戏的竞争性。多样式的地图,使玩家在各个游戏水平都可以寻找到挑战的目标,长期地保持游戏的新鲜感。ANDROID游戏的大量玩家是年轻人,而现在年轻人的巨大的消费潜力使得本游戏开发具有社会可行性。32功能需求分析业务逻辑模块主要是对数据进行逻辑处理。主要可分为三大模块即欢迎模块、游戏模块、图形模块。(1)欢迎模块打开软件后,首先展示给用户的是一个欢迎动画,随后就是主界面,包含了“开始游戏”模块。(2)游戏模块玩家点击“开始游戏”后,进入游戏界面。用户点击开始游戏后,系统开始倒计时,屏幕最上行有倒计时的时间进度条,第一关设置时间为100S。玩家每消掉任何一对图形会出现线条连路方式出现以及显示消图效果发出消图声音。如果玩家在规定的时间内将所有的图形消掉,系统提示玩家恭喜过关。在系统所给的时间内没有消掉所有图形则将退出游戏,并提示游戏结束如果游戏出现了死锁的情况(也就是说没有图形可以相消的情况),系统会提示玩家没有可以消的方块了,请使用游戏道具“重排”,然而“重排”每一次的游戏中最多只能用两次,如果重列用完了之后还出玩死锁情况,系统便自动再次重新排列,直到不出现死锁。(3)图形模块图形模块是用来管理图形的。包括图形的图片,图形的随机排列,图形的显示和消除等。33系统基本流程本游戏是一款基于ANDROID的手机连连看游戏,玩家进入游戏后,进入主界面,显示开始游戏、游戏设置、游戏介绍、游戏帮助和退出游戏。当玩家点击“开始游戏”后,玩家在规定时间内消去全部图片,即可进入下一关,如果没有在规定时间内消去全部图片,则失败。当玩家所得的分数高于游戏中排行榜的分数,则可以在排行榜上保存姓名和得分。当玩家在菜单里选择“退出游戏”后,将进入系统主界面。当玩家点击“保存退出”后,将进入系统主界面,当玩家点击“关于游戏”后,可以看到游戏的排行榜,也可以清除排行榜的记录,还可以看到游戏的帮助文档,向玩家介绍本游戏的使用方法。当玩家点击主界面的“退出游戏”,即退出连连看游戏程序。34系统模块设计1系统总体设计,总共分为五个模块,分别是“菜单设计”,“界面设计”,“算法设计”,“消息响应设计”和“用户管理设计”,如图33所示。图33系统总体设计2系统详细设计(1)菜单设计,总共分为四个模块,分别是“开始游戏”,“规则说明”和“退出游戏”,如图34所示。图34菜单设计(2)界面设计,总共分为三个模块,分别是“框架设计”,“地图设计”和“进度条设计”,如图35所示。图35界面设计(3)算法设计,总共分为两个个模块,分别是“画线设计”和“消除算法设计”,如图36所示。图36算法设计34消息响应设计总共分为三个模块,分别是“鼠标响应”,“时间响应”和“绘图响应”,如图37所示。图37消息响应设计用户管理设计,只有排行榜设计一个模块,只有当排行榜为空或者玩家得分超过排行榜,才用得到,如图38所示。图38用户管理设计35图形连通算法设计每次用户选择两个图形,如果图形满足一定条件两个图形一样,且这两个图形之间存在转弯少于3的路径,则两个图形都能消掉。给定任意具有相同图形的两个格子,我们需要寻找这两个格子之间在转弯最少的情况下,经过格子数目最少的路径。如果这个最优路径的转弯数目少于3,则这两个格子可以消去。在检验两个方块能否消掉的时候,我们要让两个方块同时满足两个条件才行,就是两者配对并且连线成功。下面的这三种情况,我们可以知道,需要三个检测,这三个检测分别检测一条直路经。这样就会有三条路径。若这三条路径上都是空按钮,那么就刚好是三种直线两个转弯点把两个按钮连接起来了。1相邻。直接连接消除。2若不相邻的先在第一个按钮的同行找一个空按钮。(1)找到后看第二个按钮横向到这个空按钮所在的列是否有按钮;(2)没有的话再看第一个按钮到与它同行的那个空按钮之间是否有按钮;(3)没有的话,再从与第一个按钮同行的那个空按钮竖向到与第二个按钮的同行看是否有按钮。没有的话路径就通了,可以消了。3若2失败后,再在第一个按钮的同列找一个空按钮。(1)找到后看第二个按钮竖向到这个空按钮所在的行是否有按钮;(2)没有的话,再看第一个按钮到与它同列的那个空按钮之间是否有按钮;(3)没有的话,再从与第一个按钮同列的那个空按钮横向到与第二个按钮同列看是否有按钮。没有的话路径就通了,可以消了。若以上三步都失败,说明这两个按钮不可以消去。36系统风格定位ANDROID游戏的大量玩家是年轻人,鉴于这点我的设计风格选择了水果,图片基本上都是可爱的水果。这样设计首先是基于用户群,第二在参考了很多网上的连连看游戏,多数是纸牌造型,所以这样可以让本游戏变得更有个性。同时也尝试了很多其他的风格,但最后还是觉得水果风格最适合本游戏。37本章小结本章概要地阐述了本系统的体系结构,描述了各个功能模块,并分析了系统功能与系统角色和流程分析,为下一章的系统的设计与实现打下基础。第4章系统的设计与实现41系统运行界面图1欢迎界面,如图41所示。图41欢迎界面2点击一次“开始游戏”,进入游戏界面如图42所示。图42开始游戏3游戏进行时,消除图片时会出现连线路径,如图43所示。图43运行界面4在规定时间内消除所有之后,游戏胜利,如图44。图44胜利界面5未在规定时间内消除所有,游戏失败,如图45。图45失败界面42开发环境的搭建421下载ECLIPSE首先我们需要下载ANDROID开发时会用到的整合开发环境ECLIPSE。目前ANDROID应用程式只支援使用JAVA来编写ANDROID应用程式。所以开发前必须先安装JAVA开发套件JAVADEVELOPMENTKIT,JDK。各平台的JDK可至HTTP/JAVASUNCOM/下载。安装好JDK后,我们可以前往ECLIPSE网站下载ECLIPSE这个方便的整合开发环境。下载ECLIPSE时选ECLIPSEIDEFORJAVADEVELOPERS或ECLIPSEIDEFORJAVAEEDEVELOPERS这两种版本,只有这两种版本才会预装ECLIPSEJDT扩充套件。下载完同样先解压缩到适当目录下。422安装ECLIPSEECLIPSE不需要安装,只要确认你的系统上有安装JAVA,即可直接开启ECLIPSE资料夹,点击ECLIPSE开始执行ECLIPSE整合开发环境。第一次启动ECLIPSE时会弹出视窗让你决定预设的工作目录。一般使用ECLIPSE预设的工作目录即可。进入到ECLIPSEIDE后,安装ANDROID开发工具扩充套件。423ECLIPSE安装ADT扩充套件下载完最新的ADT扩充套件后,打开ECLIPSE开发环境。选择HELPSOFTWAREUPDATES选项,这选项会带出一个新视窗。选择AVAILABLESOFTWARE标签,选择右方的ADDSITE新增网站按钮,会弹出一个输入框。选择右上角的LOCAL按钮,并选取刚下载的ANDROID最新开发工具档案,选到之后按下“OK”按钮离开。在视窗中全选新出现项目的所有选项后,按下右方的INSTALL按钮。424下载ANDROIDSDK接着我们要从HTTP/CODEGOOGLECOM/P/ANDROIDBMI/WIKI/下载ANDROID软体开发套件SOFTWAREDEVELOPMENTKIT,SDK。下载下来的SDK档案需要先解压缩。WINDOWS平台需要先另行安装解压缩程式,如免费的7ZIP解压缩工具。将解压缩后的ANDROIDSDK档案夹命名为ANDROID_SDK。在ECLIPSE打开偏好设定页面PREFERENCE,选择ANDROID标签,在SDKLOCATION栏位按下“BROWSE”键,选择刚刚解压缩完的ANDROID_SDK档案夹所在地,然后按下视窗右下角的套用APPLY按钮。这样ANDROIDSDK就设定完毕。43部分代码综诉此部分为音乐代码。包括了音效的音量,当游戏为开始界面时,调用专门的一段音乐;在进入游戏后,当点击某一图片时,调用点击声音,点击另一张图片时,如果两张图片相同,且两张图片能够连通,则调用连通声音,如果不能连通,当点击第二张图片时,仍是点击图片声音。以下是部分示例代码PACKAGEWHUISSSRICANDROIDIMPORTJAVAUTILHASHMAPIMPORTANDROIDCONTENTCONTEXTIMPORTANDROIDMEDIAAUDIOMANAGERIMPORTANDROIDMEDIASOUNDPOOLPUBLICCLASSSOUNDPLAY/音效的音量INTSTREAMVOLUME/定义SOUNDPOOL对象PRIVATESOUNDPOOLSOUNDPOOL/定义HASH表PRIVATEHASHMAPSOUNDPOOLMAP/FUNCTIONINITSOUNDSPARAMETERSNULLRETURNSNONEDESCRIPTION初始化声音系统NOTESNONE/PUBLICVOIDINITSOUNDSCONTEXTCONTEXT/初始化SOUNDPOOL对象,第一个参数是允许有多少个声音流同时播放,第2个参数是声音类型,第三个参数是声音的品质SOUNDPOOLNEWSOUNDPOOL25,AUDIOMANAGERSTREAM_MUSIC,100/初始化HASH表SOUNDPOOLMAPNEWHASHMAP/获得声音设备和设备音量AUDIOMANAGERMGRAUDIOMANAGERCONTEXTGETSYSTEMSERVICECONTEXTAUDIO_SERVICESTREAMVOLUMEMGRGETSTREAMVOLUMEAUDIOMANAGERSTREAM_MUSIC/把资源中的音效加载到指定的ID播放的时候就对应到这个ID播放就行了FUNCTIONLOADSFXPARAMETERSNULLRETURNSNONEDESCRIPTION加载音效资源NOTESNONE/PUBLICVOIDLOADSFXCONTEXTCONTEXT,INTRAW,INTIDSOUNDPOOLMAPPUTID,SOUNDPOOLLOADCONTEXT,RAW,1/FUNCTIONPLAYPARAMETERSSOUND要播放的音效的ID,LOOP循环次数RETURNSNONEDESCRIPTION播放声音NOTESNONE/PUBLICVOIDPLAYINTSOUND,INTULOOPSOUNDPOOLPLAYSOUNDPOOLMAPGETSOUND,STREAMVOLUME,STREAMVOLUME,1,ULOOP,1F综诉游戏中消除图片的判断。判断两张图片能否被消除要满足两个条件,一个是两张图片是否相同,只有两张图片相同时才能进行消除;另一个条件是判断两个图片之间是否能够连通,分三种情况,一种是两张图片在同一条直线上,要么同一行,要么同一列,且这两张图片之间没有其他图片阻挡。还有一种情况是两张图片之间需要通过一个拐点才能连通,这就需要找到那个拐点,拐点需要满足它的X轴与拐点的X轴相同,另一张图片的Y轴与拐点的Y轴相同,或者一张图片的Y轴与拐点的Y轴相同,另一张图片的X轴与拐点的X轴相同,且两张图片都与拐点连通。再有就是两张图片需要两个拐点才能连通,那就把其中一个拐点当做一张和所选图片相同的图片,再按照一个拐点的方法找到一个拐点,再找到另一个能与已找到的拐点连通的拐点即可。以下是部分示例代码PACKAGEWHUISSSRICANDROIDIMPORTWHUISSSRICVIEWGAMEVIEWIMPORTANDROIDAPPALERTDIALOGIMPORTANDROIDAPPDIALOGIMPORTANDROIDCONTENTCONTEXTIMPORTANDROIDCONTENTDIALOGINTERFACEIMPORTANDROIDVIEWVIEWIMPORTANDROIDVIEWVIEWONCLICKLISTENERIMPORTANDROIDWIDGETIMAGEBUTTONIMPORTANDROIDWIDGETTEXTVIEWPUBLICCLASSMYDIALOGEXTENDSDIALOGIMPLEMENTSONCLICKLISTENERPRIVATEGAMEVIEWGAMEVIEWPRIVATECONTEXTCONTEXTPUBLICMYDIALOGCONTEXTCONTEXT,GAMEVIEWGAMEVIEW,STRINGMSG,INTTIMESUPERCONTEXT,RSTYLEDIALOGTHISGAMEVIEWGAMEVIEWTHISCONTEXTCONTEXTTHISSETCONTENTVIEWRLAYOUTDIALOG_VIEWTEXTVIEWTEXT_MSGTEXTVIEWFINDVIEWBYIDRIDTEXT_MESSAGETEXTVIEWTEXT_TIMETEXTVIEWFINDVIEWBYIDRIDTEXT_TIMEIMAGEBUTTONBTN_MENUIMAGEBUTTONFINDVIEWBYIDRIDMENU_IMGBTNIMAGEBUTTONBTN_NEXTIMAGEBUTTONFINDVIEWBYIDRIDNEXT_IMGBTNIMAGEBUTTONBTN_REPLAYIMAGEBUTTONFINDVIEWBYIDRIDREPLAY_IMGBTNTEXT_MSGSETTEXTMSGTEXT_TIMESETTEXTTEXT_TIMEGETTEXTTOSTRINGREPLACE“,STRINGVALUEOFTIMEBTN_MENUSETONCLICKLISTENERTHISBTN_NEXTSETONCLICKLISTENERTHISBTN_REPLAYSETONCLICKLISTENERTHISTHISSETCANCELABLEFALSEOVERRIDEPUBLICVOIDONCLICKVIEWV/点击时判断是否为同一图片THISDISMISSSWITCHVGETIDCASERIDMENU_IMGBTNDIALOGDIALOGNEWALERTDIALOGBUILDERCONTEXTSETICONRDRAWABLEBUTTONS_BG20SETTITLERSTRINGQUITSETMESSAGERSTRINGSURE_QUITSETPOSITIVEBUTTONRSTRINGALERT_DIALOG_OK,NEWDIALOGINTERFACEONCLICKLISTENERPUBLICVOIDONCLICKDIALOGINTERFACEDIALOG,INTWHICHBUTTONWELACTIVITYCONTEXTQUITSETNEGATIVEBUTTONRSTRINGALERT_DIALOG_CANCEL,NEWDIALOGINTERFACEONCLICKLISTENERPUBLICVOIDONCLICKDIALOGINTERFACEDIALOG,INTWHICHBUTTONCREATEDIALOGSHOW/GAMEVIEWSTARTPLAY/TOASTMAKETEXTCONTEXT,TEXT,DURATIONBREAKCASERIDREPLAY_IMGBTNGAMEVIEWSTARTPLAYBREAKCASERIDNEXT_IMGBTNGAMEVIEWSTARTNEXTPLAYBREAK综诉这是界面设定部分。对界面的布局,进度条的位置和设定,对图片框架的大小和尺寸,对刷新剩余图片和消除图片的位、尺寸进行了设定。同时还对每个图片的大小进行了设定。指定了图片的来源和图片在棋盘中的位置,使得图片的位置数字化,为获得图片位置判断是否连通提供了条件。在进行界面设定时,在最外层图片外围设定了一圈绝对通畅的线路,使得最外层不相邻但是相同的图片可以连接。以下是部分示例代码PACKAGEWHUISSSRICVIEWIMPORTJAVAUTILARRAYLISTIMPORTJAVAUTILLISTIMPORTWHUISSSRICANDROIDRIMPORTANDROIDAPPACTIVITYIMPORTANDROIDCONTENTCONTEXTIMPORTANDROIDCONTENTRESRESOURCESIMPORTANDROIDGRAPHICSBITMAPIMPORTANDROIDGRAPHICSCANVASIMPORTANDROIDGRAPHICSCOLORIMPORTANDROIDGRAPHICSPAINTIMPORTANDROIDGRAPHICSPOINTIMPORTANDROIDGRAPHICSRECTIMPORTANDROIDGRAPHICSDRAWABLEDRAWABLEIMPORTANDROIDUTILATTRIBUTESETIMPORTANDROIDUTILDISPLAYMETRICSIMPORTANDROIDVIEWVIEWPUBLICCLASSBOARDVIEWEXTENDSVIEW/XCOUNTX轴方向的图标数1/PROTECTEDSTATICFINALINTXCOUNT10/YCOUNTY轴方向的图标数1/PROTECTEDSTATICFINALINTYCOUNT12/MAP连连看游戏棋盘/PROTECTEDINTMAPNEWINTXCOUNTYCOUNT/ICONSIZE图标大小/PROTECTEDINTICONSIZE/ICONCOUNTS图标的数目/PROTECTEDINTICONCOUNTS19/ICONS所有的图片/PROTECTEDBITMAPICONSNEWBITMAPICONCOUNTS/PATH可以连通点的路径/PRIVATEPOINTPATHNULL/SELECTED选中的图标/PROTECTEDLISTSELECTEDNEWARRAYLISTPUBLICBOARDVIEWCONTEXTCONTEXT,ATTRIBUTESETATTSSUPERCONTEXT,ATTSCALICONSIZERESOURCESRGETRESOURCESLOADBITMAPS1,RGETDRAWABLERDRAWABLEFRUIT_01LOADBITMAPS2,RGETDRAWABLERDRAWABLEFRUIT_02LOADBITMAPS3,RGETDRAWABLERDRAWABLEFRUIT_03

温馨提示

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

评论

0/150

提交评论