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

下载本文档

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

文档简介

全套设计加扣 3012250582湖南软件职业学院毕业设计毕业选题: 基于Android的记数字游戏: 指导教师: 学生姓名: 院系名称: 软件工程系 专业班级: 软件技术Java1304 学生学号: 提交日期: 2015年12月 19日 目 录第一章 绪论1.1 课题背景11.2 国内外研究现状21.3 课题研究意义21.4 论文结构安排3第2章 基础知识与开发技术2.1 Android技术简介52.2 Java技术简介11第3章 需求分析与系统概要设计3.1 可行性分析143.2 功能需求分析153.3 系统基本流程153.4 模块设计及算法简16第4章 系统详细设计4.1 开发环境的搭建184.2 单项功能的实现194.3 算法详细设计23第五章 系统测试与性能分析5.1 软件测试275.2 游戏系统测试285.3 游戏性能分析29总结30参考文献31致谢32 - I -第一章 绪 论1.1课题背景现代科学技术的发展,改变了人类的生活。作为新世纪的大学生,应该站在时代发展的前沿,掌握现代科学技术知识,以适应社会的发展。要做一名能够独立完成面临的任务并且有创新意识的新型人才。下面谈谈数字记忆游戏设计基于的Android系统平台。Android是一个基于Linux 核心(kernel)的开放手机平台作业系统。与Windows Mobile、Symbian等手机作业系统处在同一级别。对于设备制造商来说,Android是一个免费的平台。Android作业系统让设备制造商免除每出一台手机,就得被手机作业系统厂商限制的情况。对硬件开发厂商来说,Android也是个开放的平台。只要厂商有能力,可以在这个平台上自由加入特有的装置或功能,不受手机作业系统厂商的限制。对于手持装置的开发者来说,Android是个先进的平台。平台上的应用程式可相容于各种型号的Android 手机,免去为各种不同手机机型开发的困扰。Android平台支援各种先进的网路,具备绘图、3D 处理等能力,可以给使用者提供更好的体验。对于用户来说,Android是一个用于手机的作业系统。用户只要先申请一个免费的Google 帐户即可。当用户想换一台手机时,就可以在同样使用Android作业系统平台的不同厂牌手机之间选择,并且很容易地将联络簿等个人资料转换到新手机上。Android 在Linux 核心的基础上,提供了各种合用的函数库和一个完整的应用程式框架。并采用较符合商用限制的Apache 版权。在Linux 核心的基础上提供Google 自制的应用程式运行环境(称作Dalvik,与Sun 的J2ME 不同),并提供基于Eclipse 整合开发环境(IDE)的免费、跨平台(Windows、Mac OS X、Linux) 开发工具(SDK),便于应用程式开发者学习和使用。免费的跨平台开发工具,让具备一些物件导向观念或视窗程式开发经验的开发者能在一定时间内上手。从不同角度来说,Android 代表着一个崭新的开放原始码作业系统平台、一个友善的免费应用程式开发环境、一个与世界各地的程式开发者,站在相同起跑点上的公平竞争机会。而基于Android平台的数字游戏作为一款经典的益智小游戏,一直以来都被众多的游戏爱好者喜欢,这个游戏,男女老少皆宜。游戏的吸引力主要在于:连连看游戏是一种意趣休闲的小游戏,不仅能调节精神,还能在游戏中锻炼我们的眼力视野,注意力的专心程度,开发我们的思维能力,同时可以充实自己,向高等级挑战,培养我们面对困难时自己所具有攻克困难的信心。1.2国内外研究现状 手机游戏(Mobile Game或Wireless Game),是指消费者利用随身携带并具有无线网络联机功能的智能移动终端设备,能随时随地来进行的游戏。手机游戏最大的特点是其随时随地进行游戏的便利性。这些年来,手机游戏市场有了很大的发展,手机游戏已成为使用率最高的手机娱乐应用,占到各种手机娱乐应用比例的78.4%。在美国,手机游戏作为美国手机用户最喜欢的移动应用之一,在iPhone和Android等智能终端推出后发展迅速。而在中国,中国市场上手机游戏数量已经超过了美国人口数量”,这个结论来自中国游戏产业上半年调查报告,报告中指出,中国移动游戏市场实际销售收入达到209.3亿元人名币,同比增长67.2%,而用户规模为3.66亿,同比增长12.5%。经过多年的发展,第三代数字通信(3G)技术获得了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着4G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。随着Android应用的流行,网上出现了多种版本的数字游戏。如2048等等小游戏。通过对至11年小游戏行业市场热点,结合新浪、搜狐、雅虎、网易调查发布的数据分析发现,2014年小游戏热点集中在数字游戏领域,从2007年起风投对小游戏行业的投资案例明显减少,小游戏行业的投资目标主要集中在从事连连看小游戏企业和研发企业,小游戏行业在经历了高峰期后正趋于平静。 1.3课题研究意义现在小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。数字游戏就是典型了!不管你走到哪个游戏网站,数字游戏游戏总是排在受玩家欢迎排名的前5位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女老少、工薪白领,是一款适合大众的经典网络休闲小游戏。不仅能调节精神,还能在游戏中锻炼我们的眼力视野,注意力的专心程度,开发我们的思维能力,同时可以充实自己,向高等级挑战,培养我们面对困难时自己所具有攻克困难的信心。完成这次毕业设计,不仅可以提高我对知识的综合运用能力,增加实现项目设计的经验,同时让我深入地了解一个安卓游戏的基本制作过程以及各项功能是如何实现的,更拓宽了自己的知识面。通过完成一个比较完善的安卓游戏,我对图像编辑、程序设计等各方面的知识有了更深的理解,也为以后的工作和学习打下了很好的铺垫。1.4论文结构安排整篇论文共分为五章,其主要内容安排如下:第一章为绪论。介绍论文的选题背景,系统的基本功能的实现以及论文结构的安排。包括课题的背景资料简介、国内外研究现状、深入地介绍了课题研究的价值以及对未来的影响。为本系统的编写调试提供了强大的理论依据。第二章为基础知识和相关的开发技术。这部分主要是介绍实现系统的技术支撑体系和系统的开发方法。包括开发模型、Android技术和Java技术等,并且详细介绍了Android的基本知识、特点、Android平台的优势和手机游戏开发的市场价值以及用Java语言开发该游戏的详细步骤。第三章为需求分析与系统概要设计。本章概要地阐述了游戏的体系结构,描述了各个功能模块,并分析了系统功能与系统角色和流程分析,展示了本系统的流程图,为下一章的系统的设计与实现打下基础。第四章为系统详细设计。这部分主要介绍了数字记忆游戏的各个功能是如何实现的,描述了系统的设计理念、基本流程和风格定位,展示了各个模块的模型和界面图,全面深刻的解析了游戏所具有的全部功能及其实现的方法。对每个界面的设计以及思路进行了详细的解释。第五章为系统测试与性能分析。描述了软件测试的基本方法、测试的总类和测试的步骤,对游戏进行了的系统测试和性能上的分析。第二章 基础知识与开发技术这一章介绍了系统的开发环境和开发方法,并且详细介绍了Android的基本知识、特点、Android平台的优势和手机开发的市场价值以及Java技术简介、开发的详细步骤和游戏使用的主要技术问题。2.1 Android技术简介2.1.1 Android基本知识Android是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序还有移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和 T-Mobile 在内的30多家技术和无线应用的领军企业组成。Android作为Google企业战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现,Google的目标是让移动通信不依赖于设备甚至是平台。Android一词本意是指机器人,当然现在大家都知道它是Google推出的开源手机操作系统。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。它是被一个由 30 多家科技公司和手机公司组成的“开放手机联盟”共同研发的,这将大大降低新型手机设备的研发成本。完全整合的全移动功能性产品成为“开放手机联盟”的最终目标。Android软件平台主要由五部分构成,它们分别是:关键应用程序、应用程序框架和组件、C/C +函数库、Java程序运行环境、优化了的Linux内核。关键应用程序。Android平台内包含一些关键应用程序,如邮件收发客户端程序、短信收发程序、日历、网页浏览器等,而更多有特色的Android应用程序还有待于广大开发者共同参与开发。应用程序框架及组件。Android应用程序开发基于框架和组件。Android本身已在其框架中提供了许多组件供应用程序调用,开发者也可在开发应用程序时顺带开发新的组件,并将该组件放入应用程序框架中,以供自己和其它应用程序调用。C/C +函数库。Android应用程序框架之下是一套C/C +函数库,它们服务于Android应用程序组件,其功能通过组件间接提供给开发者。这些函数库包括::标准C函数库、媒体功能库、浏览器引擎、2D和3D图形库等2。Java程序运行环境。Android的Java程序运行环境包含一组Java核心函数库及Dalvik虚拟机,它们有效地优化了Java程序的运行过程。Linux内核。Android系统平台基于优化了的Linux内核,它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层。 Android应用程序以各种组件(API)为基础。API是Android软件平台的重要组成部分,也是开发Android应用的关键所在。Android 在Linux 核心的基础上,提供了各种合用的函数库,和一个完整的应用程式框架。并采用较符合商用限制的Apache 版权。当前活动程序Activity。作为最常用的应用程序组件,几乎所有Activity都会通过创建U I窗口与用户进行交流。Activity具有生命周期,它包含运行、暂停、停止等几个状态,状态间的转换可通过调用onCreate()、onStart()、onRestart()、onResume()、onFreeze()、onPause()、onStop()、onDestory()等方法来实现。要开启新的activity,可以调用startActivity(Intent),或调用startSubActivity(Intent,int),后者通常和onActivityResult(int,int,String,Bundle)联合使用,以从一个activity获取某结果并返回给打开它的activity3。图像显示View。View是最基本的UI构件,它在屏幕中占据一个矩形区域,可用来显示文本、图像等内容,还可完成图像事件处理4。常用的View方法有:inflate() (由XML 文件生成View)、onDraw (Canvas)(对View进行填充) 、onMeasure (int,int)(测量View的高度和宽度)、onLayout()(完成View的布局)、onKeyDown(int, KeyEvent)(View中有按键操作时被调用)、onFocusChanged (boolean,int)(当View得到或失去关注时被调用)、setOnClilckListener()(设置View点击事件监听器)。View也包含一些子类,如:TextView(布局文件中的文本显示)、EditText(布局文件中的文本编辑)、Button(按钮)、ListView(显示列表)。事件Intent。Intent抽象描述了想要执行的某种操作,它与startActivity一起使用可以开启新的activity,与startService一起使用可以开启后台服务。Intent最重要的作用还是加载activity,它是不同activity间的桥梁。Intent也可以被认为是一种概括操作行为的数据结构,它主要包括action (动作)和data(数据)两部分,此外它还具有一些附加属性如category(intent种类)、type (数据类型)等。常用的Intent方法有intent()(构造intent)、addcategory() (添加intent类型)、getAction()(获取intent动作)、getData()(获取intent数据)等。数据存取与共享机制ContentProvider:ContentProvider为应用程序提供一些访问方法,包括:Query(Uri,String ,String,String ,String,String,String)(数据信息的查询) ,insert (Uri,Contentvalues) (在Content provider中加新数据),update(Uri, Contentvalues,String,String )(更新Content provide中的数据),Get type (Uri)(获取数据类型)。其中,Uri标明了ContentProvider存储的数据类型,在执行访问方法时都需依据Uri作为路径标识来确定要访问哪个ContentProvider5。后台服务Service。Service是运行在后台的应用程序组件,不直接与用户交互。当前活动程序可以使用Context.StartService()开启一项后台服务,还可以通过Context. bindService()与后台服务通信。2.1.2 Android系统特点Android系统具有如下5个特点:1) 开放性。Google与开放手机联盟合作开发了Android,Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统;2) 应用程序无界限。Android上的应用程序可以通过标准API(Application Programming Interface,应用程序编程接口)访问核心移动设备功能。通过互联网,应用程序可以声明它们的功能可供其他应用程序使用;3) 应用程序是在平等的条件下创建的。移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件;4) 应用程序可以轻松地嵌入网络。应用程序可以轻松地嵌入HTML、JavaScript和样式表,还可以通过WebView显示网络内容;5) 应用程序可以并行运行。Android是一种完整的多任务环境,应用程序可以在其中并行运行。在后台运行时,应用程序可以生成通知以引动注意6。每个Android应用程序都存在于它自己的世界之中:默认情况下,每个应用程序均运行于它自己的Linux进程中。当应用程序中的任意代码开始执行时,Android启动一个进程,而当不再需要此进程而其它应用程序又需要系统资源时,则关闭这个进程。每个进程都运行于自己的Java虚拟机(VM)中。所以应用程序代码实际上与其它应用程序的代码是隔绝的。默认情况下,每个应用程序均被赋予一个唯一的Linux用户ID,并加以权限设置,使得应用程序的文件仅对这个用户、这个应用程序可见。当然,也有其它的方法使得这些文件同样能为别的应用程序所访问。 使两个应用程序共有同一个用户ID是可行的,这种情况下他们可以看到彼此的文件。从系统资源维护的角度来看,拥有同一个ID的应用程序也将在运行时使用同一个Linux进程,以及同一个虚拟机。2.1.3 Android手机平台的优势现在常见的智能手机平台有:Symbian、Windows Mobile、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具有以上的优越性,所以2012年末数据显示,仅正式推出两年Android操作系统就将要超越称霸十年的诺基亚Symbian系统,使之跃居全球最受欢迎的智能手机平台7。2.1.4 Android 手机游戏的市场价值随着计算机技术和移动通信技术的快速发展,手机用户的数量越来越多,用户在挑选手机设备的时候己经不再拘泥于基本的通话功能。而新的技术从某种程度上提高了手机设备处理数据的能力,因而可以在手机上添加许多新的功能,以满足用户多样性需求。为此已经有越来越多的研发机构或部门着手研究开发手机应用软件。手机游戏作为手机上的应用软件类型之一,更是深受广大用户的喜爱。由于手机硬件资源有限、屏幕小、游戏时间短等特点,使得手机很适合运行那些剧情简单、操作方便、有益于提高敏捷性和智力开发的游戏。Android平台上的游戏相比应用软件,不需要进行严格的市场细分,不需要针对目标用户量身定制。这是因为游戏玩家的核心需求是统一的,那就是:娱乐与打发时间(乃至更高层面的竞技需求和群体认同需求),这种需求附着于特定的社会发展阶段,不受地域的限制,甚至于能够穿透文化壁垒。因此,绝大多数种类的游戏都具备传染性与普适性,每一个售出的游戏都将会点燃周围潜在玩家的激情,最终吞噬整个需求市场8。由此可知,几乎每一个Android手机用户都是游戏的需求者,都是潜在的顾客,现今的n多万Android用户不过是冰山一角,随着Android手机市场进一步壮大,游戏的市场容量将具备更大的增长空间。综上所述,Android平台相比其他智能手机平台有许多优势,这些优势使Android发展迅速,而Android游戏作为Android手机最主要的应用,其市场价值有目共睹。鉴于现阶段Android游戏研究开发的人数较少,游戏产品数量也较小的现状,对Android游戏的研究具有很大的意义,不仅仅需要研究Android游戏开发中的图形图像、人工智能等关键技术,更重要的是研究Android游戏的开发框架,以及Android游戏开发不同于别的平台游戏开发的相关技术实现等内容。受益于近年来移动通信市场的持续快速增长,我国手机产业高速发展,成为新的国民经济增长点,带动了一系列相关产业的发展。随着网络、通信和信息技术的突破性进展,Android手机在全球爆炸性的增长并且迅速打入中国市场。在这一前提下,手机终端游戏的开发成了热门行业。Java作为一种新的编程语言,以其简单性、可移植性和平台无关性等优点,得到了广泛地应用,特别是Java与万维网的完美结合,使其成为网络编程和嵌入式编程领域的首选编程语言。连连看游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎。游戏产业作为现代电脑电子技术的产物,正在以其独特的魅力在全世界的娱乐领域占据主流位置,我们在承认广大娱乐网民的选择空间狭小的同时,也必须明确的一点就是游戏本身所具有的强大的吸引力。数字记忆游戏只需要把出现的数字,按照出现的位置一次点出来,规则简单容易上手。休闲、趣味,且不分男女老少、工薪白领,在娱乐的同时还可以训练眼明手快及增强逻辑判断能力。是一款适合大众的经典小游戏。游戏制作的目的是满足了人们休闲的需要,在紧张工作之余休闲类的小游戏能够给人带来最大程度的放松,也可以增进人们之间的交流、沟通,通过游戏还可以认识更多的朋友。 Android系统手机在中国已经火热流行开来,设计本课题通过查阅相关资料可以促进自己了解更多Android手机前沿信息,理清软件开发流程,进一步加固对Java知识的运用。对以后致力于Android应用程序开发奠定基础。Android平台上的游戏相比应用软件,不需要进行严格的市场细分,不需要针对目标用户量身定制。数字游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎。本程序将三年来所学的专业知识和其他方面的知识融入到实际应用中。通过此次课题的设计,掌握如何制作一个游戏软件,以及制作游戏软件的整个流程,制作游戏软件的步骤,为以后的就业工作打下基础。2.2 Java技术简介这次记数字游戏的设计与实现是基于Android平台的,而该平台以Java作为开发语言,JDK是进行Java开发时必需的开发包。进行开发前先要建立合适的开发环境,其中基于Java的整合型可扩展平台Eclipse是我们的首选。Eclipse是一款非常优秀的开源IDE,Google官方也提供了基于Eclipse的Android开发插件ADT,Android平台为开发者提供了源码开放的软件开发包(SDK),它包含了使用Java语言开发Android平台应用的必要工具和组件(API)。在大量插件的配合下,完全可以满足从企业级Java应用到手机终端Java游戏的开发。Java语言的学习热潮并没有因为时间的推移而消退,相反,由于计算机技术的发展所带来的新应用的出现,Java越来越流行,这种情况是以往程序设计语言在其生存周期内所不多见的9。Java语言之所以这样长盛不衰,一是因为其众多的技术特点与现今的应用十分合拍,可以覆盖大部分的需求;二是因为SUN公司不断推出新的版本,完善Java自身的功能。有了这两点,Java语言成为程序员首选的程序设计开发工具就在情理之中了。Java技术是一门编程语言,也是一个平台,它基于Java虚拟机技术,借助这个东西建立了跨平台的优势。(题外话:Java热门的原因之一就是一个跨平台的概念,和跨平台类似跨浏览器的好处也是如此,这也是现在AJAX技术流行的原因之一。另外现在热炒的RIA富客户端的概念下的技术除了AJAX外还有Adobe的Flash/Flex,微软的Silver Light,SUN的JavaFX等,个人更看好Flash/Flex,原因是Flash插件在浏览器端占用率很高10。Java技术的重要性就不讲了,从最近流行的一个统计数据上来看,目前世界上编程语言Java、C 、VB、C+依次排名前4位,这排名本身不说明什么,至少也是工业界对编程语言使用上一个侧面的反映吧。Java编程语言与众不同之处在于:Java程序既是编译型的(转换为一种称为Java字节码的中间语言),又是解释型的(JVM 对字节码进行解析和运行)。编译只进行一次,而解释在每次运行程序时都会进行。编译后的字节码采用一种针对JVM 优化过的机器码形式;解释器是JVM 的实现。这段是摘自网上的,编译原理学的不是很好,对这门语言的背后运行机制理解到这样了。Java平台是一种纯软件平台,它有三个版本JavaSE、JavaEE、JavaME。JavaSE(Java Platform,Standard Edition)这个版本以前叫做J2SE,后来版本号从1.4直接跳到5.0,其实也就是1.5,所以就叫成Java SE 5.0。目前Java开发人员使用较多的版本是5.0,当然还有Java SE 6.0这个更新的版本。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。JavaSE还包含了支持Java Web服务开发的类,并为JavaEE这个版本提供基础。虽说就桌面应用程序开发来说,Java一直不被看好,但也稍微提一下,负责桌面GUI开发的类库我知道的有:JDK自带的主要是AWT/SWING这个Java原生类库;也可以使用IBM的SWT/JFace这个第三方类库。开发工具我了解的有:NetBeans(最近已经是6.0final版了,做GUI有使用VB的感觉),Eclipse(SWT/JFace这个项目其实就是做Eclipse项目时扩展出来的,所以对SWT/JFace支持的也不错)。JavaEE(Java Platform,Enterprise Edition)这个版本以前叫做J2EE,也就是大家可能听得比较多的,也是Java比较流行的领域,Java的企业级版本。JavaEE下有很多流行的开发框架,像Struts、Spring、Hibernate这种流行的所谓SSH组合等。根据项目大小、应用领域,技术平台的选择面还是很多的,除了JavaEE,还有.Net,LAMP组合(Linux、Apatch、MySql、PHP组合),相对来说比较新Ruby在Ruby on Rails的框架应用,后两者可能在相对来说比较轻量级的Web领域运用成功案例比较多,更重量的企业级潜力还有待挖掘。JavaME(Java Platform,Micro Edition)这个版本以前叫做J2ME。应用领域像各种移动设备和嵌入式设备,比如:手机、PDA、电视机顶盒和打印机11。Java开发工具很多,个人使用的IDE有Eclipse和NetBeans。Eclispe比较流行,各种插件也多,当然用起来也不错;NetBeans现在也是越做越好了,介绍这两个IDE主要是开源的,当然还有其它工具如JBuilder、IntelliJ、JCreator。这些IDE各有优势劣势,根据个人开发的项目来选择了。第三章 需求分析与系统概要设计这章概要的阐述了系统的体系结构,描述了各个功能模块,并且分析了系统功能、系统角色、流程分析以及功能需求分析,为下一章的详细设计打下基础。3.1可行性分析1) 操作可行性游戏的操作可行性其实是一个游戏成功与否的关键,在很多著名游戏中游戏操作合理性经常成为玩家讨论的焦点,所以说游戏设计的合理性既是需要考虑的关键也是对玩家选择此游戏的主要吸引力。游戏时间不能过长也不能过短,在经过反复思考和老师的指导后,决定将时间做成每关开始10秒时间不变,往后没关的数字加一个。这一决定保证了游戏的正常完成,同时也是考虑到了制作时间的限制。2) 技术可行性Android以Java作为开发语言,JDK是进行Java开发时必需的开发包。进行开发前先要建立合适的开发环境,其中基于Java的整合型可扩展平台Eclipse是我们的首选。Eclipse是一款非常优秀的开源IDE,Google官方也提供了基于Eclipse的Android开发插件ADT,Android平台为开发者提供了源码开放的软件开发包(SDK),它包含了使用Java语言开发Android平台应用的必要工具和组件(API)。在大量插件的配合下,完全可以满足从企业级Java应用到手机终端Java游戏的开发。Eclipse是一款很好的动画游戏制作软件。它完全符合面向对象编程的要求,大大的提升了程序编写的能力。而且在Eclipse软件中,它自带了一些常用的组件。这为我们对这各组件开发提供了很大的帮助。因此在技术上是可行的。 3) 经济可行性开发该系统所需的相关资料可以通过已存在的相关系统进行调查采集,所需的其他应用软件、硬件系统也易于获得。因此开发成本较低。而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。所以,从经济的角度来看,该系统可行。3.2功能需求分析毕业设计是基于一般的数字记忆游戏规则与游戏模式完成的。在游戏体验和游戏模式方面又有所改进,旨在增加游戏的趣味性和挑战性。游戏设计出来后,经过测试需要实现以下的游戏基本功能:基本游戏功能。也就是说,设计完成的游戏能够正常启动运行。在游戏的初始化阶段。首先要有排除死锁的能力,所谓的死锁就是游戏初始化完成后,重复进行该开的关卡不进入下一关卡。或者是在玩家游戏过程中出现了无法点击的情况。游戏模式选择功能。点击游戏界面中的开始按钮,可以开始新的游戏,数字出现的位置随机。点击游戏界面中的继续按钮,可以继续上一回合的游戏。数字出现的位置随机。游戏开始功能。进入游戏界面时。会看见一个界面。然后在游戏界面的左上角出现10秒的计时,同时游戏开始十秒钟之后开始,在10秒内点击屏幕也是开始。如需退出,直接退出即可。再次进入游戏如需,继续游戏则点击主界面的继续按钮,如需重新游戏则点击新游戏按钮。3.3系统基本流程本游戏是一款基于Android的手机数字游戏,玩家进入游戏后,进入主界面,显示开始游戏、继续游戏、退出游戏。当玩家点击开始游戏后,玩家在规定时间内记住出现数字的位置,时间结束后则开始游戏,如果成功则进入下一关,否则游戏失败继续当前关卡的游戏。如需退出游戏则直接点击手机返回键。进入游戏主界面,界面上有继续游戏,结束游戏、开始新游戏。系统流程图如图3.1所示。图3.1 系统流程图用户刚刚进入游戏时候,将会进入游戏开始界面。点击开始游戏按钮,载入游戏,系统自动产生初始游戏布局。此时系统将会自动开始游戏游戏开始。系统会自动匹配每次玩家点击出每个数字的范围,如果返回的的数值在系统产生的范围同时数字顺序也要相同,符合则游戏进入下一关,否则继续当前关卡游戏。3.4模块设计及算法简介本次系统设计总共分为三个模块:菜单设计、界面设计、算法设计:菜单设计。总共分为三个模块:开始游戏、继续游戏、退出游戏。界面设计。总共分为三个模块:框架设计、关卡显示和计时器。算法设计。总共分为两个模块:游戏布局、数字坐标的产生。本次设计的游戏主要设计到一下两个个核心算法:游戏布局、数字坐标的产生:1) 游戏布局在该算法中,首先生成一个nm的矩阵。在该矩阵中每个节点的信息都将被记录。所有的节点分为两类:路径节点和图案节点。随着游戏的进展,图片的消除,图案节点将被消除,成为路径节点。返回给系统。2) 数字坐标每次开始新的游戏或者新的关卡,每次数字的坐标都会根据自定义的算法产生。第四章 系统详细设计这一章对游戏的各个功能的实现进行描述。描述了系统的主要功能,展示了游戏运行的界面图。全面深刻地解析了该系统所具有的全部功能及其实现的方法。对游戏UI、核心算法进行了详细的解释。4.1开发环境的搭建1) 下载Eclipse。刚开始我们需要下载Android开发时会用到的整合开发环境Eclipse。目前Android应用程式只支援使用Java来编写Android应用程式。所以开发前必须先安装Java 开发套件(Java Development Kit,JDK)。各平台的JDK可至/下载。安装好JDK 后,我们可以前往Eclipse网站下载Eclipse这个方便的整合开发环境。下载Eclipse时选Eclipse IDE for Java Developers或Eclipse IDE for Java EE Developers这两种版本,只有这两种版本才会预装Eclipse JDT扩充套件。下载完同样先解压缩到适当目录下。2) 安装Eclipse。Eclipse不需要安装,只要确认你的系统上有安装Java,即可直接开启Eclipse资料夹,点击Eclipse开始执行Eclipse 整合开发环境。第一次启动Eclipse时会弹出视窗让你决定预设的工作目录。一般使用Eclipse预设的工作目录即可。进入到EclipseIDE后,安装Android开发工具扩充套件。3) Eclipse安装ADT 扩充套件。下载完最新的ADT扩充套件后,打开Eclipse开发环境。选择Help-Software Updates选项,这选项会带出一个新视窗。选择Available Software标签,选择右方的Add Site(新增网站)按钮,会弹出一个输入框。选择右上角的Local按钮,并选取刚下载的Android 最新开发工具档案,选到之后按下OK按钮离开。在视窗中全选新出现项目的所有选项后,按下右方的Install按钮。4) 下载Android SDK。这时我们要/p/Androidbmi/wiki/ 下载Android软体开发套件(Software Development Kit,SDK)。下载下来的SDK档案需要先解压缩。Windows平台需要先另行安装解压缩程式,如免费的7-zip解压缩工具。将解压缩后的Android SDK档案夹命名为Android_sdk。在Eclipse打开偏好设定页面Preference,选择Android标签,在SDK Location栏位按下Browse键,选择刚刚解压缩完的Android_sdk档案夹所在地,然后按下视窗右下角的套用Apply按钮。这样Android SDK就设定完毕。4.2单项功能的实现4.2.1游戏UI的实现这个小游戏实现了数字的依次增加、游戏计时、开始游戏、继续游戏和退出功能。如图4.1是游戏开始界面。图4.1 游戏主界面显示这部分的代码都写在类(Padding)和mians包中的DrawButton类里面,进入游戏后左上方显示游戏开始倒计时间,右上方显示游戏关卡,还有在这部分的游戏界面也是写在mians包中的MainActiving类,每个都由Textview显示。现在这里占个位。这里说明一下Padding类中比较常出现几种状态变量:/游戏开始的10秒记忆时间 public final static float padd = 10.0f;public static float num = 0.0f;public static int length = 0;public static int m = 0;public static int gu = 1;/定义按钮public static int button;public static boolean isOK = false;public static boolean isTou = false;public static float X = new float24;public static float Y = new float24;/定义开始界面的三个按钮显示字体public static String name = new StringExit,Con,New; public static List list = new ArrayList();这里为主键面的设置,以及游戏的字体和背景颜色的设置。主界面的三个按钮使用for循环一次的调用Padding类中所定义(name)变量。 Paint paint, paint_text_add, paint_text;paint = new Paint();paint_text = new Paint();paint_text_add = new Paint();/主界面按钮的背景颜色Paints.Painte(paint, Color.WHITE, 250, true, 2, 0, Style.FILL);/字体颜色Paints.Painte(paint_text, Color.BLACK, 250, true, 2, size, Style.FILL);/整个游戏的背景颜色Paints.Painte(paint_text_add, Color.BLACK, 250, true, 2, size_add,Style.FILL);/利用for循环设置按钮for (int i = 0; i 3; i+) canvas.drawCircle(Radius_X(), (i + 1) * Radius_Y(), Radius(), paint);canvas.drawText(Pi, Radius_X() -0.7f* Radius(),(i + 1) * Radius_Y() + text_y, paint_text);Xi = Radius_X();Yi = (i + 1) * Radius_Y();如图4-2所示是游戏开始界面图4.2 游戏开始界面显示这部分的代码在mains包中的MainActivty类中部分代码如下所示。/显示游戏开始的时间部分的TextView public void CreateTime(TextView time, float textSize) time.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT, 1.0f);time.setGravity(Gravity.CENTER);time.setTextColor(Color.WHITE);time.setTextSize(textSize);time.setText(Time:);/显示游戏开始的关卡部分的TextView public void CreateLoca(TextView loca, float textSize) loca.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, 1.0f);loca.setGravity(Gravity.CENTER);loca.setTextColor(Color.WHITE);loca.setTextSize(textSize);loca.setText(loca:+Padding.gu+/24);/游戏开始第一关卡所显示的数字public int Length()str = getShare();if(str.length()=0)str = 6;return Integer.parseInt(str);public int Gu()num = getShareNum();if(num.length()=0)num = 1;return Integer.parseInt(num);以上就是本次游戏的基本界面设置。4.3

温馨提示

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

最新文档

评论

0/150

提交评论