毕业设计(论文)-基于Android的连连看游戏.doc_第1页
毕业设计(论文)-基于Android的连连看游戏.doc_第2页
毕业设计(论文)-基于Android的连连看游戏.doc_第3页
毕业设计(论文)-基于Android的连连看游戏.doc_第4页
毕业设计(论文)-基于Android的连连看游戏.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

全套设计加扣 3012250582 毕 业 设 计 论 文题 目: 基于Android的连连看游戏 学 院: 计算机科学与工程学院 专 业: 计算机科学与技术 姓 名: 学 号: 指导老师: 完成时间: 2015-06-03 全套设计加扣 3012250582摘 要安卓游戏是指运行在安卓系统平台的游戏,伴随着移动终端设备的发展,安卓游戏不但可以运行于智能手机,也可以运行在平板电脑上。安卓游戏分为网络游戏、体育游戏、动作游戏、休闲游戏、棋牌游戏、射击游戏、益智游戏、格斗游戏、冒险游戏、角色扮演、飞行游戏、策略游戏、模拟经营、即时战略等其它游戏等几大类。安卓游戏的系统架构和其它操作系统一样,采用了分层的架构。从架构图看,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux核心层。随着智能手机的普及,它将改变着人们的生活方式。因此,游戏将充当着重要的角色,而连连看游戏就是其中之一。Android是一 个基于Linux的开源的移动互联网操作系统,这为连连看游戏的实现提供的良好的平台。 通过对当前的主流操作系统进行对比,发现Android系统是一个比较不错的系统,而且使用人群也比较多,因而给开发者极大鼓舞。本游戏界面美观,操作简单,主要用于娱乐休闲,能够在手机上健壮的运行。关键词:Android,Java,连连看I全套设计加扣 3012250582 ABSTRACTAndroid game involves running in Android platform game, with the development of mobile devices, Android game can not only run on smart phones, can also run on the tablet. Android games into online games, sports games, action games, casual games, chess games, shooting games, puzzle games, fighting games, adventure games, role-playing, flying games, strategy games, simulation management, and other real-time strategy games, categories. Android game system architecture and other operating systems, using a layered architecture. From the chart to see, Android is divided into four layers, respectively, from the top to the lower application layer, application framework layer system runtime layer and Linux core. With the popularity of smart phones, it will change peoples way of life. Therefore, the game will serve as an important role, but Lianliankan game is one of them. Android is an open source Linux-based mobile Internet operating system, which provides for the realization of good Lianliankan game platform.The current mainstream operating systems are compared, it found that Android system is a relatively good system, and use of the crowd will be more, thus giving greatly encouraged by the developer. The game interface is beautiful, easy to operate, mainly used for recreation, able to run on the phone robust.Keywords: Android,Java,Lianliankan1目 录0引言11 绪论21.1选题背景21.2国内外研究现状21.3 研究内容和目标32 开发知识和相关技术简介42.1 Android42.2 Java技术52.3开发游戏注意事项63 可行性分析73.1操作可行性73.2经济可行性73.3技术可行性74需求分析84.1功能需求模块分析84.2系统基本操作流程84.3游戏开发流程95 游戏的设计115.1 游戏运行界面图116 游戏的实现166.1游戏界面实现166.2图形的连通算法实现166.3游戏的风格定位187 游戏性能与测试207.1软件测试207.1.1测试简介207.1.2测试的目的207.1.3测试的分类207.1.4测试的原则217.2游戏系统测试218 总结与展望238.1结论238.2下一步指导方向工作目标23致 谢24参考文献25III河南城建学院本科毕业设计(论文) 引言 0引言手机游戏是指运行于智能移动设备终端的游戏软件,它的最大特点是具有很强的娱乐性和交互性。近年来,手机游戏市场发展势头迅猛,游戏变成了使用频率最高的的娱乐应用,尤其在日本和美国手机游戏市场增长势头迅猛。 伴随着各平台对OpenGL ES支持能力的大力增强,让开发复杂的3D场景游戏变为现实。众多的显示芯片对Android的支持,硬件性能将不再成为制约专业化游戏发展的瓶颈。越来越多在PC、PSP、PS3、XBOX360等各游戏平台占有领先地位的专业游戏公司将向Android等手机平台领域快速渗透,使得游戏的规划更加向专业化方向发展。 手机游戏将向网络化方向发展,随着各平台对无线通信网络、WIFI网络、蓝牙网络的良好支持,游戏将创新出更好的游戏性和用户本验。网络游戏,多人游戏,联机对战等将进一步强化玩家对游戏的粘着度,并且容易通过对道具等的控制产生营利模式。玩家之间对交互能力的需求也会促成未来的游戏向网络化发展进程的加快。 手机游戏将向休闲化、时间片化方向发展,移动设备的随身性使是休闲小游戏将得到快速的发展。移动设备对分散时间的利用促进了游戏向时间片化发展,即一个游戏可以随时开始,随时结束,充分利用用户分散的时间片来运行。 目前在Android和IOS等智能端推出的各种游戏数不胜数,以其引人入胜的场景设计和极赋诱惑力的游戏规则,牢牢的捆住了众多消费者。中国手机游戏市场目前仍然以单机版游戏为主,网游版产品所占比重较低。从整体行业来看,中国手机游戏行业处于快速发展期,近两年来,在电信运营商和手机游戏开发商的联合推动下,中国的手机游戏行业,取得了较快的发展。 游戏“连连看”,只需要把两个相同的图片用三根以内的直线连在一起就可以消除,游戏规则较为简单。游戏画面清晰可爱,老少皆宜。连连看游戏在游戏市场上以各种形式出现,如果蔬连连看、宠物连连看、植物大战僵尸连连看、可爱怪物连连看2、新上海麻将连连看、汽车标志连连看,这些游戏虽说内容不同但是原理都是相同的,所以只要掌握了基本的连连看游戏,所有复杂的连连看游戏都能搞定,因为这款游戏定位合理,各种有利的因素促使了其发展,目前业内人士还是比较看好它的,更为重要的是它无需耗费流量安装包相对较小,这使得这类游戏能更好的为人们所接受。本次毕业设计的题目选的是基于Android的连连看游戏,因为这款游戏现阶段比较流行,而且游戏规则相对其它游戏比较简单,易于分析归纳,比较适合一个初学者,难度相对比较适中,本游戏的素材取自一些动物的头像,通过设计能够完成连连看游戏最基本的功能的实现。2全套设计加扣 3012250582 1 绪论1.1选题背景近年来,因特网在国内迅速普及,导致了网络游戏的高速发展。同样手机的普及,导致了手机游戏市场呈现爆炸式的发展。尤其是国内外巨大的手机拥有量,更是让商家看到了商机,手机游戏市场利润将会十分丰厚。面对潜力如此巨大的手机游戏市场,各游戏开发商、运营商、服务商以及手机终端厂商等都纷纷开始了各自的应战准备,以便抢占商机。诺基亚、索爱、摩托罗拉等各大手机厂商开始不断的提升手机在游戏方面的性能,同时还在手机操作系统方面采用开放式的平台,方便用户享受不同的手机游戏业务1。而国内游戏开发商,如盛大、网易等公司,纷纷跻身手机游戏开发商行列。新浪、搜狐等著名的门户网站,也纷纷涉足手机游戏领域,相继开辟了各自的手机游戏频道和栏目,其他一些游戏网站也都全面加快了手机游戏开发的步伐。目前SUN公司的J2ME CLDC/MIDP环境和高通公司的BREW(Binary Runtime Environment for Wireless)客户端程序是国内外游戏开发的两大主要平台。中国电信业巨头中国移动建立了无线Java增值服务体系,推出了基于SUN公司的J2ME 环境的“百宝箱”业务,包括游戏类、商务类、生活类等丰富的数据服务。中国移动用户只要使用支持Java的手机,通过GPRS的无线上网方式,访问移动梦网门户的“百宝箱”服务菜单,就能方便地下载各种由Java语言编写的应用程序。而中国联通与高通公司合作,采用高通公司的BREW平台技术,推出了“神奇宝典”业务,中国联通用户可以从联通公司应用下载服务器上以无线方式下载应用程序。1.2国内外研究现状手机游戏是指消费者利用随身携带并具有无线网络联机功能的智能移动终端,能随时随地的进行的游戏。手机游戏的最大特点是其随时随地进行游戏的便利性,这些年来手机游戏市场有了很大的发展,手机游戏已成为使用率最高的手机娱乐应用,占到各种手机娱乐应用比例的78.4%。在日本美国尤其发展迅速,而在中国,根据易观智库产业数据库最新发布的数据显示,我国2010年手机游戏市场规模已经达到32.9亿,继续保持了较快的发展。经过多年的发展,第三代数字移动通信技术获得了广泛的接受,它为移动终端用户带来了更快的数据传输速率。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。2通过对07至08年连连看小游戏行业市场热点,结合新浪、搜狐、雅虎、网易调查发布的数据分析发现,2009年小游戏热点集中在连连看小游戏领域,从2007年起风投对小游戏的投资案列明显减少,小游戏行业的投资目标主要集中在从事连连看小游戏企业和研发企业,小游戏行业在经历了高峰期正趋于平静。1.3 研究内容和目标 了解Android游戏的设计和开发过程。 使用Android自带控件和自定义控件进行Android平台连连看游戏的开发。基于Eclipse开发环境,利用Android提供的API,开发出针对Android平台的连连看游戏。本课题主要研究开发基于Android平台的连连看游戏,使用Java编程语言,通过Android开发平台提供的接口进行游戏的开发。本次课题的意义在于开发出来的连连看看游戏能够使用户方便的娱乐消遣。3全套设计加扣 3012250582 2 开发知识和相关技术简介2.1 AndroidAndroid系统最初是由安迪鲁宾(AndyRubin)创作,主要支持手机,2005年8月被Google收购,2007年11月5日Google与84家硬件制造商、软件开发商及电信运营商组成开放手持设备联盟来共同研发改良Android的智慧手机,并逐渐扩展到平盘电脑及其它领域上。Android系统底层是基于Linux系统之上的,该平台由操作系统、中间件、用户界面、和应用软件4层组成,它采用的是一种称为软件叠层的方式进行构建。这种构建结构具有层与层之间隔相互离,明确各层分工,低耦合的,当下层的层内或层下之间发生改变时,上层应用程序无需任何改变。Android系统主要由五部分组成,它们分别是应用程序层、应用程序框架、函数库、Android运行时、Linux核心层。应用程序层。它包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人、网页浏览器等,这些都是用Java编写的。 应用程序框架。它提供了大量的API供开发者使用,它不仅可以作为软件开发的基础,也是软件复用的重要手段。函数库。它包含一套被不同组件使用的c/c+库的集合,一般来说,Android应用开发不能直接调用这些c/c+库集,但可以通过它上面的应用程序框架来调用这库。它包括系统c库、媒体库、Surface Manager、LibWebCore、SGL、3D libraries、FreeType、SQLite。系统c库:从BSD系统派生出来的标准c系统库,并且专门为嵌入式Linux设备调整过。媒体库:支持播放和录制多种音频和视频格式,查看静态图片。Surface Manager:管理对显示的子系统的访问,并且可以对多个应用程序的2D和3D图层提供无缝整合。LibWebCore:一个全新的web浏览器引擎。SGL:底层的2D图形引擎。3D libraries:即可使用硬件3D加速,也可使用高度优化的软件3D加速。FreeType:位图和向量字体的显示。SQLite:功能强大的轻量级关系数据库。Android运行时:它有两部分组成,Android核心库集和Dalvik虚拟机。核心库提供了Java语言核心库所使用的绝大部分功能,而虚拟机则负责运行4Android应用程序。每一个android应用程序都单独的运行于Dalvik虚拟机内,而Dalvik能够同时高效地运行多个虚拟机。Linux内核:它提供了诸如内存管理、进程管理、设备驱动等服务,同时也是手机硬件的连接层。Android系统具有开放性、挣脱运营商的束缚、丰富的硬件选择、不受任何限制的开发商、无缝结合Goolge应用的优势。开放性:开放性对于Android的发展而言,有利于积累人气,而对于消费者来讲,最大的受益正是丰富的软件资源。挣脱运营商的束缚:通过标准的API访问核心移动设备功能。通过互联网,应用程序可以声明它们的功能可供其它应用程序使用。丰富的硬件选择:这与Android平台的开放性相关,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。不受任何限制的开发商:Android平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰。无缝结合的Google应用:Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。现在常见的智能手机平台有:IOS、Windows Phone、Symbian、BlackBerry,因为Android手机平台是一个真正的开放式的平台,无需支付任何费用即可使用。所以说对开发商来说是一个不错的选择。2.2 Java技术Android是以Java作为开发语言,JDK是进行JAVA开发时必须的开发包,Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。后来Sun公司被甲骨文公司并购,Java也随之成为甲骨文公司的产品。Java由编程语言、文件格式、虚拟机、应用程序接口四部分组成,Java编程语言是一种简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植性、高性能、多线程和动态的语言,它的编译执行过程是首先将源码编译成二进制字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,实现了跨平台。Java平台由虚拟机和应用程序编程接口构成,而编程接口是一个独立于操作系统的标准接口,分为基本部分和扩展部分。Java是由3个体系组成的,它们分别是Java SE 、Java EE、 Java ME,Java SE是开发桌面、服务器、嵌入式环境和实时环境使用的应用程序,Java EE可以用来实现企业级的面向服务体系架构和Web应用程序,Java ME主要用在在移动设备和嵌入式设备。Java中分为类和接口,而类分为抽象类、多态类、final类和class类,抽象类是用来派生子类的,多态类指的是对象变量是多态的,final类是用来创建对象而不能被继承,class类是在程序启动时包含在main()方法的类会被加载机要加载它需要的所有类。接口是声明一系列方法的声明,接口只有方法的特征而没有实现,而这些方法在不同的地方被不同的类实现可以具有不同的行为。2.3开发游戏注意事项游戏程序是一项精度要求很高的程序系统,代码利用率很高。所以其逻辑设计必须相当严谨,需要将可能发生的事件及意外情况都考虑在设计中。游戏的美观性是吸引用户玩耍的的前提条件,因此,必须在游戏界面上下功夫。游戏的地图不可能通过绘图来解决,否则,不仅难以控制和处理过多的元素,也会因为过大的大型图片而不能限制程序的大小。游戏的开始和结束必须要给用户一个明确的画面信息。6河南城建学院本科毕业设计(论文) 可行性分析 3 可行性分析3.1操作可行性游戏操作的可行性是判断一个游戏成功与否的关键,在很多好的游戏当中游戏操作的合理性必然成为玩家讨论的话题。同时游戏的时间限制也非常重要,时间长短一定要把控好,本游戏定为90秒,玩家在规定时间内消去所有的图片则为游戏胜利,否则为游戏闯关失败。在进入游戏之前展现给玩家的应该是一个比较有吸引力的场景布局,因为对图形的处理不太熟悉,所以而本游戏只是用了一张简单的背景图片,而玩家在玩的时候如果图片能够相连得需要用一条明显的线进行标明,如果不能相连得需要把最后点击的图片作为当前图片。在游戏胜利或失败的时候得给玩家一个提示。所以基本的功能特点还是实现了,只是场景的渲染效果没处理的太好。3.2经济可行性对于任何一个游戏而言,前期的开发投入和开销都比较大,到后期花费则相对少,本游戏本身占用空间较小。因为Android的开放性,所以,以后需添加功能,游戏的更新比较简单方便,不需要太多的人力物力来维持维护,这就提高了管理者的工作效率,降低了开销,因此在经济可行性方面还是有很大优势的。现在借助免费的Eclipse开发软件和廉价的移动真机设备,既方便了开发也为在开发过程中调试提供了可能性,而在开发软件中也提供了模拟器,但模拟器并不是全部具备真机的全部功能,所以难免会遇到一些问题不确定是自己代码写的有问题还是设备不支持。3.3技术可行性整个系统利用Java+Eclipse+Android开发并运行,本身开发难度不大,加之Eclipse软件具有Android插件包,此外,这几款软件的安装需要进行一些环境变量的配置,但是有很多的相关资料与教程可以查找借鉴,所以无论是从安装、配置还是最后的开发、运行其实际难度都不是很大。加之现在互联网的发展和Android的开源性,遇到问题可以方便的查阅资料,自己遇到的问题在此之前别人也遇到过,对开发进度提供了便利。8河南城建学院本科毕业设计(论文) 需求分析 4需求分析4.1功能需求模块分析该游戏分为模块4个模块游戏背景模块打开该游戏,展现给用户的是游戏背景主界面,可以对游戏模式进行切换,包括横屏的、竖屏的、全屏的三种模式。游戏玩家模块点击开始游戏后,进入游戏。用户需要在规定的90秒内把所有的图片消去,则为游戏胜利,否则则为游戏闯关失败。状态数据模型连连看游戏的界面是一个N*M的“网格”,每个网格上显示一张图片,这个网格只要一个二维数组来定义即可,而每个网络上所显示的图片,对于底层的数据模型来说,不同的图片对应于不同的数值即可。操作处理如果两张图片可以连接则消除,如果不可以则把最后一次点击的图片作为当前图片,继续进行匹配操作。相应的操作处理图如图4.1所示。 图4.1操作处理图4.2系统基本操作流程本游戏是一款广受欢迎的单机小游戏,它具有玩法简单、耗时少等特征,玩家打开软件,进入背景界面,点击开始按钮开始游戏。如果玩家在规定的时间内消去所有图片则提示游戏闯关成功,若在玩的过程中点击开始按钮则切换游戏模式,重新进行计时。用户可以点击home键或back9键退出游戏。相应的系统操作流程图如图4.2所示。 图4.2系统操作流程图4.3游戏开发流程开发游戏界面的搭建该界面分为两个区域:游戏的主界面区、控制按钮与数据显示区。游戏主界面区是自定义的组件,控制按钮是一个button按钮,剩余时间的显示是一个textview文本框。定义数据模型对图片进行再次封装,每张图片有一个ID如果ID相同则为两个图片是相同的,本程序并不是直接使用Int数组来保存游戏的状态数据,而是采用Piece来保存游戏的状态模型。因为在Piece对象里封装的信息更多,不仅包括该方块的左上角的x,y坐标,而且还包含了该Piece所显示的图片,图片id。处理方块之间的连接线LinkInfo是一个简单的工具类,它用于封装两个方块之间的连接信息其实就是封装了一个List,list里保存了连接线需要经过的点。因为游戏规则是两个方块之间最多自能用3条线段相连,最多有两个拐点加上两个方块的中心,方块的连接信息最多只需要4个连接点。加载界面的图片通过反射的来获取drawable下的图片,然后把n张图片存入一个list的集合中,从中抽取一半的图片,进行复制,这样得到了n个图片,而且每个图片ID都可以找得到匹配的图片,最后一步就是随机打乱。实现游戏的逻辑定义一个接口,该接口里有控制游戏开始的方法,定义一个方法,存放方块10对象的二维数组,定义一个方法判断是否还有Piece剩余,定义一个根据坐标查找Piece对象,定义一个判断两个Piece是否可以相连的方法。获取通道本文的通道指的是一个方块上下左右四个方向的空白方块。10河南城建学院本科毕业设计(论文) 游戏的设计 5 游戏的设计5.1 游戏运行界面图连连看游戏背景界面该款连连看游戏的游戏背景界面上半部分展现是是一张海底动物的画面,下半部分是以背景色为填充的开始按钮,底层整个界面的实现是一个自定义控件和Android自带的控件。相应的游戏背景界面图如5.1所示。 图5.1背景界面连连看游戏模式界面点击开始按钮可以切换不同模式,底层实现是给开始按钮设置一个监听事件,在该事件中定义一个定时器,首先判断之前的timer是否已经取消,如未取消则取消掉,然后重新设置游戏的时间,判断游戏的剩余时间与游戏的总时间是否相同若相同即为重新开始新游戏否则以剩余时间开始或恢复游戏,启动定时器每隔一秒发送一次消息而在主线程中定义一个handler接受消息处理消息用于更新ui。相应的游戏模式界面如图5.2,5.3,5.4所示。11 图5.2横屏模式 图5.3全屏模式 12 图5.4竖屏模式连连看游戏胜利界面在规定时间内消去所有图片则为游戏胜利,底层实现是为游戏区域的触碰时间绑定监听器,在该监听器中处理手指按下和手指弹起的动作,而在为游戏区域的处理方法中首先获取用户点击的x坐标y坐标,根据用户触碰的坐标得到对应的Piece对象,这里需要判断下如果没有选中任何Piece对象,不在往下执行,将gameview中的选中方块设为当前方块;然后判断之前有没有选中任何一个Piece对象,如果没有就将当前方块设为已经选中的方块,重新将GamePanel绘制,并不在往下执行,如果之前已经选中了一个就需要对当前Piece对象和上一个Piece进行判断并进行连接判断两个Piece可不可连接,如果不可以则将当前方块设为选中方块,否则处理成功连接。在处理成功连接的方法中可以连接,让GamePanel中处理LinkInfo,将gameView中的选中方块设为空,将两个Piece对象从数组中删除,将选中的方块设置为null,播放连接音效,然后判断是否还有剩下的方块,如果没有,则游戏胜利,弹出胜利对话框,停止定时器更改游戏状态。相应的游戏胜利界面如图5.5所示。13 图5.5游戏胜利连连看游戏失败界面在规定时间内未消去所有图片,底层实现是在主线程中定义一个hander,在点击开始按钮时就启动一个定时器,该定时器每隔一秒就发送一次消息,在主线程中的handleMessage(Message msg)中对时间进行递减操作如果时间小于零则停止游戏弹出失败对话框。相应的游戏失败界面如图5.6所示。 图5.6游戏失败界面 15河南城建学院本科毕业设计(论文) 游戏的实现 6 游戏的实现6.1游戏界面实现展现给玩家的界面是Android四大组建之一的Activity,在该Activity中加载的页面布局是一个自定义的控件和一个线性布局。自定义控件是一个继承View的类,在该类中定义了游戏逻辑的实现类,保存当前已经选中的方块,连接信息的对象,选中表示的图片对象,在构造方法中用位图平铺作为连接线,设置连接线的粗细,同时在onDraw(Canvas canvas)中负责把界面绘制、连接线的绘制、画选中表示的图片。下半部分是一个水平排列的线性布局,在该布局中有一个控制游戏开始的按钮,一个显示游戏剩余时间的文本框。游戏界面是一个Activity,在该Activity中定义了游戏配置的对象,游戏业务逻辑接口,游戏界面,播放音效的SoundPool,在主线程中定义了一个handler了用于更新UI,Activity生命周期中的onCreate()首先被调用,在该方法中用于加载界面布局和完成初始化界面的任务,在初始化界面时对开始按钮设置监听事件和为游戏区域的触碰事件绑定监听器。在onResume()中判断是否处于游戏状态如果是处于游戏状态则以剩余的时间重写开始游戏,在onPause()中暂停游戏,如果玩家在规定的时间内消除所有图片则弹出胜利对话框否则弹出失败对话框。6.2图形的连通算法实现没有转折点的横向连接。如果两个Piece数组中的第二位索引值相同,那么这两个Piece就位于同一行,并且它们之间没有障碍,这两个图片就可以消除,两个方块的连接信息就是它们的中心。private boolean isXBlock(Point p1, Point p2, int pieceWidth)if (p2.x p1.x)/ 如果p2在p1左边, 调换参数位置调用本方法return isXBlock(p2, p1, pieceWidth);for (int i = p1.x + pieceWidth; i p2.x; i = i + pieceWidth)if (hasPiece(i, p1.y)/ 有障碍17return true;return false;没有转折点的纵向连接。如果两个Piece数组中的第一位索引值相同,那么这两个Piece就位于同一列,并且它们之间没有障碍,这两个图片就可以消除,两个方块的连接信息就是它们的中心。private boolean isYBlock(Point p1, Point p2, int pieceHeight)if (p2.y p1.y)/ 如果p2在p1的上面, 调换参数位置重新调用本方法return isYBlock(p2, p1, pieceHeight);for (int i = p1.y + pieceHeight; i p2.y; i = i + pieceHeight)if (hasPiece(p1.x, i)/ 有障碍return true;return false;一个转折点的连接。需要先找到这个转折点,而它们的分布情况分为四大类,point1位于point2的左上、左下,右下,右上。private Point getWrapPoint(List p1Chanel, List p2Chanel)for (int i = 0; i p1Chanel.size(); i+)Point temp1 = p1Chanel.get(i);18for (int j = 0; j p2Chanel.size(); j+)Point temp2 = p2Chanel.get(j);if (temp1.equals(temp2)/ 如果两个List中有元素有同一个, 表明这两个通道有交点return temp1;return null;两个转折点的连接。两个转折点连接是非常复杂的连接情况。这又要分为好几种情况同一行不能直接相连,同一列不能直接相连、point1在point2右下角,有六种连接情况、point1在point2右上角同样有六种转折情况。Map result = new HashMap();/ 获取以point1为中心的向上, 向右, 向下的通道List p1UpChanel = getUpChanel(point1, point2.y, pieceHeight);List p1RightChanel = getRightChanel(point1, point2.x, pieceWidth);List p1DownChanel = getDownChanel(point1, point2.y, pieceHeight);/ 获取以point2为中心的向下, 向左, 向上的通道List p2DownChanel = getDownChanel(point2, point1.y, pieceHeight);List p2LeftChanel = getLeftChanel(point2, point1.x, pieceWidth);List p2UpChanel = getUpChanel(point2, point1.y, pieceHeight);6.3游戏的风格定位18经过多次的风格替换尝试,和导师的沟通最终选为卡通的风格,因为Android游戏大量玩家都是年轻人和女性朋友。图片都是小动物的图片,这样的设计是根据用户人群来决定的,而网上的很多连连看是纸牌造型,用户通过玩的时候还可以认识一些小动物,这是一举两得的事情。19河南城建学院本科毕业设计(论文) 游戏的性能与测试7 游戏性能与测试7.1软件测试 7.1.1测试简介 软件测试是在软件开发中起着不可估量的作用,它是保证一个程序是否性能足够优化,有无bug的前提。顾名思义,软件测试就是用来保证所鉴定的软件的正确性、完整性、安全性、和质量的过程。其实它就是一种实际输出与预期输出间的审核和比较过程。最为经典准确的定义是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。 7.1.2测试的目的测试的目的不仅仅是发现程序中的错误而执行程序的过程,好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案,成功的测试是发现了至今为止尚未发现的错误的测试。测试不仅为了发现bug,而是通过bug找到其产生的原因是什么,bug发生的趋势是什么,它可以帮助管理项目的工程师发现软件开发中的缺陷,及时的进行改进补救;它还可以帮助测试人员设计出针对性问题的测试方法,改良测试的效率和有效性;并不是说在测试中没有发现错误没有价值的,一个完善的测试是衡量软件质量的一种方法和策略。7.1.3测试的分类软件测试是一项复杂的系统工程,可以从不同的角度进行分类,对测试分类是为了更好而精确的明确测试的过程。从是否需要执行被测试的角度来划分:可以分为静态测试和动态测试,静态测试不使用计算机运行待测程序,而是采用其它的手段已到达测试的目的;而动态测试则是采用运行的方式来测试软件来达到测试的目的。从测试方法的角度来划分:可以分为白盒测试和黑盒测试,白盒测试也被称为结构测试或逻辑测试,它已经知道了产品内部的工作过程为前提条件,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,而不管它的功能,白盒测试最主要的目的是用于验证软件,白盒测试的主要方法可分为逻辑驱动法、基路测试法;黑盒测试也被称之为功能测试和数据驱动测试,它是在已知产品所应有的功能为前提条件,可通过测试来检测每个功能是否正常使用,在测试时,把程序看成一个不能打开的黑盒子,完全忽略程序内部结构和内部特性的前提下,测试者在程序接口处进行测试,它只检测程序的功能能否按照需求分析规格说明书的规定正常使用,程序能否适当地接受输入数据而产生正确的输出信息,并且能够保持外部信息的完整性。黑盒测试方法主要可以分为等价划分法、边值分析法、因果图法、错误推测法等,黑盒测试的主要目的是用于软件确认测试。从阶段来划分的话,可分为单元测试、集成测试、系统测试、验收测试、回归测试、alpha测试、beta测试。7.1.4测试的原则测试尽量提早进行,最好是在需求阶段就开始测试。程序员应该避免测试自己的程序,软件测试的工作应该交给第三方来负责。设计测试用例的时候应关注所有可能发生的情况,包括合法的输入和不合法的输入、边界值条件,在最为例外的情况下不要制造极端状态和意外状态。应该关注到测试中发生的群集现象。就错误结果给出一个对策进行确认。要制定合理而严格的测试计划。一定要保存好测试计划、测试用例、出错统计和最终分析报告,为以后的维护工作提供便利。7.2游戏系统测试 测试环境一部Android手机安装上已经打包好的程序。对游戏功能模块进行测试游戏背景界面测试方法:点击快捷方式进入游戏背景界面。测试结果:页面显示正如预期。游戏模块切换模块测试方法:点击开始按钮,不断点击。测试结果:游戏模式在不断变化,和预期值一样。游戏的过程测试测试方法:点击两张相同的图片。测试结果:若两张相同的图片可以连接在消除否则把最后一次点击的图片作为当前图片,结果和预期值完全相同。游戏胜利和失败的测试测试方法:在规定的时间内消除所有图片则弹出游戏胜利对话框,否则则弹出游戏失败对话框。测试结果:若在规定的时间内把所有图片消除则弹出成功,否则则弹出失败,和预期值完全相同。游戏测试性能分析该游戏基本完成了连连看游戏的基本功能,界面很友好,场景也比较漂亮美观。此游戏简单易上手,适用于各种人群消遣娱乐。但是功能的复杂度不够,有待下一步的解决。25河南城建学院本科毕业设计(论文) 总结与展望 8 总结与展望8.1结论本次毕业设计把连连看的基本功能给实现了,但是更复杂的还没实现,这跟自己的能力有关,需要进一步深入探索研究把它做到完美,这是我追求的目标。本游戏我现在模拟器上运行,因为这样比较方便并且不会对自己的手机产生影响,测试中发现游戏基本可以了才在真实手机上运行。 毕业设计其实就是一次很好的实战机会,它让我们把大学4年所学的东西综合的运行起来。可以说,没有前期的知识储备是不可能按时按成任务的。感觉自己在大学里确实学到知识了,心里感到无比的欣慰和快乐。其实在整个毕业设计中并不是一帆风顺的额,难免会遇到各种各样的问题,但是问题它就真实的在哪里,你不解决它永远存在。还好在自己的锲而不舍的精神下,不断的查阅资料,咨询自己周边的朋友和自己的指导老师,还是把一个个难题给攻破了。在解决难题以后的心情是无比的快乐,这大概就是学到知识的兴奋感。通过本次的毕业设计,不断在实战中学习Java技术和软件开发流程,现已基本掌握了android游戏开发的流程,但是开发android应用和游戏有很大差别,计算机的知识跟新速度特别快,很多前言的知识和技术需要我们去学习,我们要有活到老学到老的精神,这有这样我们才会学到更多东西,才能在将来的工作中超越别人,多会一项技能总会少一项技能好的多,因为谁也不确定什么时候会用上。8.2下一步指导方向工作目标通过本阶段的毕业设计,发现了其实很多知识点自己掌握的并不牢,只是停留在表面的东西而没有去深层次的去挖掘学习。转眼就要离开这个美丽和蔼伴随自己成长四年的学校,心中万分的不舍,再也没有老师的谆谆教导,一切都要从零开始,知识的获取再也不能依赖老师了,而是要靠自己自学,这种能力是我们要具备的。接下来,在上班工作之余还是需要去学习一些超前的知识,工作中要不断的总结,把自

温馨提示

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

最新文档

评论

0/150

提交评论