毕业设计(论文)基于Android的疯狂原始人游戏.doc

上传人:laozhun 文档编号:2394276 上传时间:2023-02-17 格式:DOC 页数:55 大小:4.67MB
返回 下载 相关 举报
毕业设计(论文)基于Android的疯狂原始人游戏.doc_第1页
第1页 / 共55页
毕业设计(论文)基于Android的疯狂原始人游戏.doc_第2页
第2页 / 共55页
毕业设计(论文)基于Android的疯狂原始人游戏.doc_第3页
第3页 / 共55页
毕业设计(论文)基于Android的疯狂原始人游戏.doc_第4页
第4页 / 共55页
毕业设计(论文)基于Android的疯狂原始人游戏.doc_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《毕业设计(论文)基于Android的疯狂原始人游戏.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于Android的疯狂原始人游戏.doc(55页珍藏版)》请在三一办公上搜索。

1、引言一、研究背景随着人们的生活节奏的逐渐加快,快餐游戏的概念应运而生,人们渴望从一成不变的工作生活中寻找更多容易得到的快感以获得满足。手机游戏已成为手机应用产品中用户使用率最高的产品,智能手机终端发展的日益强大,手机游戏产品的种类也日益丰富,手机游戏的市场规模的逐步健壮。在这样的大背景下,我选择了市场份额可观的安卓平台进行手机游戏的开发,同时为了更好的研究手机游戏市场,我阅读了大量文献,以及对身边用户进行了一定范围调研,从而进行了本次毕设的手机游戏的研究、设计与开发。在本游戏中人们可以回归到史前环境进行刺激欢乐的冒险,来以此舒缓学习及工作所带来的压力。并且本游戏在为他人带来欢乐的同时还可以巩固

2、和提高自身的专业知识与技能,本毕业设计可以巩固自己在大学期间所学的专业知识与技能,在一些技术难点的解决过程中,可以进一步提高自己的独立思考的能力与解决困难的能力以及培养自己文献查阅、信息加工整理的能力,为以后的学习工作打下一个良好的基础。二、研究的内容和意义本毕业设计是基于Android而开发的跑酷类手机游戏。Android是Google开发的一款开放源代码的操作系统,主要用于移动终端设备。本毕业设计主要充分利用移动终端设备的携带方便、触摸操作、多媒体表现等性能特点,设计和开发一款运行在Android操作系统平台上的动作类跑酷游戏软件。本毕业设计的重点在于场景的搭建以及实现物理的碰撞、手势识别

3、、人物动画。整个游戏节奏快,玩法简单刺激。可通过控制人物的起跳,使在其奔跑过程中避开障碍物。1 绪论1.1 手机游戏市场概述随着智能手机的价格越来越便宜,3G和4G网络的发展,智能手机用户增长迅速。eMarketer预测2014年全球移动手机用户将达到45.5亿。1 2014全球智能机用户总量将达到17.5亿 作者:移动互联网第一平台 时间:2014-01-211尽管移动的采用率正在放缓,但在亚太、中东和非洲等发展中地区,新用户将促进进一步增长。根据eMarketer新的报告全球移动手机用户:2014年上半年预测和比较,在2013年到2017年之间,移动手机渗透率占到全球人口的比例将由61.1

4、%增长至69.4%。图1-1 eMarketer新的报告全球移动手机用户:2014年上半年预测和比较2014年,全球智能受众数量将超过2012年的10亿大关,达到17.5亿。eMarketer预测,智能手机采用率到2017年将一直保持快速增长步调。将近五分之二的移动用户将近四分之一的全球人口在2014年将至少每月都会使用智能手机。在预测期末,全球移动手机用户中的智能手机渗透率将接近50%。2 eMarketer:2014年全球智能手机用户总量将达到17.5亿 - 易观网来源:199it 时间:2014-01-212与此同时,智能手机日益的飞速普及,为手机游戏提供了庞大的潜在用户群体:在全球范围

5、内使用智能手机的人们在大幅度增加。在根据对手机用户和计算机用户进行的调查中我们不难发现,其数据调查显示了在多数经济发展水平较高、技术较为先进、生活水平较高的国家中,手机用户都多于计算机用户,所以手机游戏潜在的市场比其他任何平台都要大,如PlayStation、GameBoy等。其便携性是手机游戏的第二大优势,在控制台游戏时代,GameBoy在当时以其独特的便携性优势,成为热销产品,人们可以随时随地沉浸在自己喜欢的游戏中。显然以现在手机的移动便携性兼娱乐性来看,手机游戏很大程度上能成为人们消遣时间的首选。伴随着手机触屏时代的来临,使得智能手机操作系统有了一个更广泛的普及,手机的性能和功能也得到了

6、很大程度的提高,同时移动互联网时代高潮的降临也推动了国内众多可开发团队投入到手机游戏的制作当中,使得手机游戏逐渐成为主流游戏市场。艾媒咨询(iiMedia Research)发布的2012Q1中国手机游戏市场季度监测报告显示,2012年一季度,中国手机游戏市场规模为10.1亿元,环比增长12.2%;手机游戏用户规模也保持稳步增长趋势,2012Q1达到1.91亿,环比增长8.5%。3 中国手机网游市场面临爆发 发行渠道成为掣肘_行业资讯_艾媒网作者:庄周 时间:2012-06-083移动游戏市场仍在不断发展壮大,2014年又将是收获的一年,无论是就Android平台、Windows平台还是iOS

7、平台而言都是如此。除微软的Windows移动系统稳定的坚守着一小部分市场份额外,移动端的另两大巨头iOS系统及Android系统的仍在继续互相转换着主流移动操作系统的市场份额。关于“手机游戏”的百度指数搜索中我得到如下分析:在2013年09月至2014年2月期间Android游戏的搜索热度远大于iOS。再来让我们看几组权威机构的调研数字:高德纳咨询公司(Gartner Group)预测,2014年全球电子设备的发货量将达到25亿台,这其中包括了PC(台式机与笔记本电脑)、平板电脑、智能手机、以及类似的产品。在全部的电子产品总量中,有19亿台将会是移动设备(绝大多数为智能手机),而其中大约11亿

8、台所搭载的将会是某个版本的安卓系统。PC产品在2014年的发货量将会下降大约7个百分点,移动电话的发货量将上升5个百分点,平板电脑的发货量则会上升54个百分点。在2013年,在人们手中使用的安卓设备大约有19亿台,苹果的iOS设备则大约有6.82亿台。4 2014年移动游戏市场展望:机会更大 挑战也更大_游戏_腾讯网 来源:腾讯游戏 时间:2014-01-164且第二届全球移动游戏开发者大会(GMGDC2013)于2013年11月23日在成都世界城新国际会议中心举行时,TalkingData CEO崔晓波根据其TalkingData统计平台的数据发现连续几个季度游戏人群在移动互联网人群的比例在

9、逐渐攀升,从第一季度的50%到了现在的90%,说明游戏基本开始变成常态消遣行为。截止到第三季度,玩过5款手机游戏的玩家比例是第一季度的3倍。5 TalkingData CEO:安卓带来移动游戏主要增量_科技_腾讯网 来源:腾讯游戏 时间:2013-11-235移动游戏行业之所以发展如此迅猛,其原因就设备包括机型而言,以华为、小米等国产机型及大量千元四核机为主力,进入移动设备市场,在一定程度上很好的推广了智能手机的普及程度。有数据显示,2013年年初苹果的IOS系统所占市场份额与谷歌的Android系统相比较而言的比例约为4:6,但是到年末大概比例约为3:7,由此可见安卓游戏市场是多么的令人振奋

10、。移动端游戏主要以休闲益智为主,2013年8月20-31日,艾瑞咨询根据中国安卓游戏在360手机助手榜单上进行了数据整理,如图1-2、1-3所示。我们不难看出在所有游戏的类型标签的分布中,休闲益智类游戏占到榜单游戏类型的近四分之一的比重,高达22.9%,且这些所占份额较大的游戏依然显示出了轻度游戏的特征。所谓轻度化游戏,是指游戏不会占用过多的个人时间和精力,能够与玩家的生活和工作达到最好的兼容。6 “轻度化”成趋势上班族如何选择游戏_产业服务_新浪游戏_新浪网 来源:新浪网 时间:2010-12-026图1-2 mStoreTracker-2013年8月20-31日中国Android游戏360

11、手机助手榜单游戏类型分布情况(a)图1-3 mStoreTracker-2013年8月20-31日中国Android游戏360手机助手榜单游戏类型分布情况(b)随着80后成为游戏玩家群体的主力,“快餐游戏”这一概念应运而生。那些难度较高或是耗时费力的游戏(如:为积攒经验值进行角色升级而不停地进行打怪,或为完成某一任务而辗转于各大陆)已经逐渐淡出了中青年玩家的生活,更加的人性化的、玩法更加简单快捷的游戏已经成为了更多玩家所关注的对象。由于中青年游戏群体热爱游戏,同时也具备为游戏消费的能力,但是因其工作繁忙,无法抽出很多的时间进行游戏活动。他们的休息时间相对固定并且十分有限,真正可以进行游戏的时间

12、大多为周末或工作日的晚上,很多中青年玩家为玩游戏甚至不惜牺牲自己的休息时间及大部分业余时间。游戏原本就是放松身心的一种方式,因此中青年玩家们首要考虑的是如何根据实际情况选择一款适合自己的游戏。所以快餐游戏的概念渐渐为上班族乃至大多数玩家所认同。所谓快餐游戏,就是指帮助玩家打发闲余时间的同时提供趣味性及娱乐性的游戏种类。在快餐游戏中,玩家无需耗费大量时间及精力,由于移动设备的带电量有量,所以省电节能也在其考虑之列。随着中国手机游戏产业的日渐成熟,我相信快餐游戏将会成为游戏发展的最终趋势,只有轻松、简单、休闲、有趣的游戏才能留住大多数工作生活繁忙的玩家。由国内新兴的手机游戏公司米艺所推出的首款轻度

13、RPG手机游戏永恒之井等多款手机游戏我们不难看出市场的导向。如今手机游戏已经渐渐成为了我们海纳百川的娱乐载体,而并非仅仅是一个单一的通讯工具了。艾瑞咨询分析还认为这种情况的出现表明休闲益智类游戏的轻游戏特征也较适合应用于移动端。对于玩家来说移动设备的特点具备了随时随地想玩就玩的游戏体验,因此对于操作性要求并不高的休闲益智类游戏的市场占领是极为有利的。7 2013年8月中国安卓游戏360手机助手产品榜单监测报告来源:艾瑞网 编辑:汤小圆 时间:2013-10-29 7目前各种形式的极限运动日益流行,也逐渐开始受到广大人们的认可与喜爱。本款游戏就是以“跑酷”为背景,设计开发一款休闲益智类手机游戏。

14、跑酷即为Parkour。Parkour运动把周围的生活场景当作一个大训练场,一切事物都成为可以攀爬、穿越的对象。 Parkour诞生于80年代的法国,“Parkour”一词来自法文的“parcour”,有“超越障碍训练场”的意思。8张斌. 都市极限无规则运动跑酷初探J. 内江科技高等理科教育,2009年6期8跑酷是一项疾走极限运动,再配合猿猴一样的灵活攀越。人们在跑酷时仅凭借自身力量越过任何障碍物,让人们挑战自身,在此过程中人们可以历练心灵,磨砺意志,追求更高层次的升华。跑酷不仅是门运动的艺术,也是一种生活方式,它使人们充满信心、笑着挑战积极的人生,人们可以使跑跳攀爬中的自由灵魂在这项极限运动

15、中获得无限的伸展。人们的生活就好比是由众多的障碍和挑战所组成的,如果努力你可以在过程中努力的克服这些,你会发现提升自我的乐趣,那么你的人生将会收获到更多东西,得到更多惊喜。正如那些热爱跑酷的人们以萨伊的班图语Yamakasi命名并创建了跑酷团体,旨在对人类潜能的哲学进行探索并激发身心极限)。跑酷,这项极具观赏性的运动是相当令人血脉喷张,模仿起来却难上加难的极限运动,在实际生活中,玩家可能会很难体验到这一运动的魅力。所以针对这一情况,为了使大家在平凡安逸的生活中体验到一份不一样的、难得的、刺激惊险的感受,在保障大家安全的前提下,既为大家带来了乐趣,又丰富了大家的生活。Android作为目前最火的

16、移动平台,素以应用品种丰富著称,在这之中,又以游戏最具代表性。为使大家也能体验到跑酷这一充满激情与活力的特殊运动,又因手机游戏中以休闲娱乐类游戏市场份额最大,是最受人们欢迎的游戏类别。相信借以安卓手机游戏之势,设计开发这样一款跑酷题材的游戏,可以使更多的玩家有机会在可移动的、便捷的、高效的手机上随时体验到这一极限运动的魅力。2013年跑酷类游戏席卷了全球。而在目前的Android平台上,风格各异的跑酷游戏同样不少。Temple Run系列、镜之边缘、滑雪大冒险、地铁跑酷、末日跑酷等是被大家所熟识的几款跑酷游戏。越来越多的跑酷游戏受到人们的欢迎,究其原因还有很重要的一点是这类游戏是一种“快餐”游

17、戏,人们厌倦了在手机上玩那些费尽脑汁也无法过关的策略游戏,但又迫切的想通过简单的操作来获得大型游戏上的感官刺激。同时由于操作性难、需要过多动脑等原因不去玩游戏的人大有人在。而我在设计本款跑酷游戏的开发意愿时就考虑到了这些,可以很好的弥合这两类游戏的优势,既可以给爱玩游戏的老玩家新的游戏体验,又可以充分挖掘那些潜在的游戏玩家。为适应人们的快节奏生活,这种快餐游戏的迅速崛起,使得人们更轻松快捷的得到满足,跑酷这种休闲娱乐类别的手机游戏的开发,很好的呼应了快餐游戏的发展。疯狂原始人是由美国梦工厂动画公司制作,二十一世纪福克斯公司发行,由科克德米科和克里斯桑德斯编剧并导演,由尼古拉斯凯奇、艾玛斯通、瑞

18、恩雷诺兹以及凯瑟琳基纳配音的3D动画电影。该动画电影的背景时间设定在史前时代,讲述了一个居住在山洞中的原始人家庭离开洞穴踏上冒险旅途的故事。从其取得的5.8亿美的元可观票房及多个大奖题名上可以看出这部影片在全球的受欢迎程度。而此题材的主题游戏却比较稀缺,尤其是跑酷类游戏中并未出现。我所做的就是借原始人的热度开发一款手机端的休闲益智类的跑酷游戏。游戏的故事情节和画面设计上,均体现了史前原始状态的元素特色,游戏故事也丰富饱满、趣味无穷。本毕设是综合极限跑酷运动、原始人主题以及快餐式玩法这三个高人气元素所设计开发的手机休闲游戏,我相信我所设计和开发的这款游戏将会受到大家的欢迎。1.2 毕业设计的研究

19、目的、内容与意义本毕业设计是在获得了手机游戏开发的相关数据以及查阅了相关文献,并在此基础上撰写的此论文,以期在为他人带来欢乐的同时还可以巩固和提高自身的专业知识与技能,本毕业设计可以巩固自己在大学期间所学的专业知识与技能,在一些技术难点的解决过程中,可以进一步提高自己的独立思考的能力与解决困难的能力以及培养自己文献查阅、信息加工整理的能力,为以后的学习工作打下一个良好的基础。本毕业设计是基于Android而开发的跑酷类手机游戏。Android是Google开发的一款开放源代码的操作系统,主要用于移动终端设备。本毕业设计主要充分利用移动终端设备的携带方便、触摸操作、多媒体表现等性能特点,设计和开

20、发一款运行在Android操作系统平台上的动作类跑酷游戏软件。本毕业设计的重点在于场景的搭建以及实现物理的碰撞、手势识别、人物动画。整个游戏节奏快,玩法简单刺激。可通过控制人物的起跳,使在其奔跑过程中避开障碍物。1.3 论文的组织结构本论文共分四章,其内容组织如下:第一章 绪论。阐述了基于安卓平台的疯狂原始人跑酷游戏的研发背景、目的和意义。第二章 需求分析。分析了基于安卓平台的疯狂原始人跑酷游戏的功能需求、游戏流程、数据流图、运行环境和开发环境。第三章 游戏设计。介绍了基于安卓平台的疯狂原始人跑酷游戏的系统架构设计以及各个功能模块的详细设计。第四章 游戏实现。重点介绍了该游戏各功能模块的实现。

21、论文的最后部分是总结与展望。总结基于安卓平台的疯狂原始人跑酷游戏的特色与创新,分析了基于安卓平台的疯狂原始人跑酷游戏的不足和未来可以努力的方向。由于作者水平有限,文中的疏漏与错误之处在所难免,恳请各位专家和老师批评指正。2需求分析2.1 功能需求随着80后的青年群体成为玩家群体的主力,“快餐游戏”的概念被广泛提出。那些难度较高的游戏已经渐渐淡出了中青年玩家的生活,玩法更加轻松,更加的人性化已经成为了更多中青年玩家所关注的重点。由于平时工作的繁忙,很多玩家因为玩游戏花去了大多数业余时间,甚至牺牲自己的休息时间。玩家们所应考虑的关键问题在于如何使自己的身心得到放松,根据自身情况进行正确的游戏选择就

22、十分必要了。因此快餐游戏的概念应运而生,人们渴望从一成不变的工作生活中寻找更多更容易得到的快感以获得满足。手机游戏已成为手机应用产品中用户使用率最高的产品,智能手机终端发展的日益强大,手机游戏产品的种类也日益丰富,手机游戏的市场规模的逐步健壮。本毕设是集极限跑酷运动、原始人主题以及快餐式玩法三个高人气元素所设计开发的一款休闲娱乐类手机游戏。2.2 游戏进行时系统流程图2-1 游戏进行时流程2.3 数据流图数据流图 (Data Flow Diagram,简称DFD)是描述软件系统中数据处理过程的一种有力的图形工具。数据流图从数据传递和加工的角度出发,刻画数据流从输入到输出的移动和变换过程。在实际

23、运用中数据流图已经成为了一种需求分析阶段最常用的工具,因为它能够清晰地反映了系统逻辑所必须完成的逻辑功能。9 信息系统的需求分析 IT计算机信息管理系统9用户点击屏幕手指点击处事件消息游戏事件1控制信息游戏资源控制系统2资源文件资源数据显示数据屏幕显示图2-2 游戏数据流图整个系统的数据流程是:玩家用手指点击屏幕,屏幕获取触点信息以时间消息的方式获取游戏事件。游戏事件控制信息使得游戏资源控制系统调用资源数据,从而获取资源文件,最终通过手机屏幕的显示反馈给玩家。2.4 运行环境2.4.1 软件的运行环境本游戏的运行环境如下:1) 手机硬件要求:CPU频率1024MHz、1G内存、分辨率为800*

24、480以上配置。2) 操作系统:Android2.0以上版本。2.4.2 开发工具的选择为满足玩家对游戏运行环境的需求,同时考虑到游戏开发的简洁性、游戏代码的可扩展性与易维护性,对运行在Android手机平台上的游戏,我选择了由JDK、Android SDK及Eclipsee组合的开发环境。 JDK(Java Development Kit)是专门针对Java开发员的产品。自从Java入市以来,JDK已成为使用最常见的Java SDK。整个Java的核心是JDK,其中包括了Java工具、Java基础类库和Java运行环境。Android SDK(software development kit

25、)是软件开发的工具包。特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。因此,Android SDk指的既是Android专属的软件开发工具包,其中包含了 Android手机模拟器(Emulator)以便开发人员进行测试。它是一个基于可扩展性强的、灵活性强的开放源代码的优秀开发平台。Eclipse是一个开放源代码的、基于Java的可扩展的、多用途的开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。其附带了标准的插件集,包括Java的开发工具,且用途不仅限于Java语言。其优势在于:从编写、查错、编译、帮助等等各方面为Java语言贴身定做;可

26、无限扩展的强大插件功能;众多公司、厂商、组织的鼎立支持;代码开放,自由,免费。3 游戏设计3.1 游戏背景设计本游戏讲述在遥远的史前时代,一个原始人家庭在横穿丛林冒险旅行的跑酷游戏。原始人咕噜一家共有六个家庭成员,他们生活在远古洞穴中,每天都需要通过打猎和采摘水果来维持生活,在外出中他们总会碰到形色各异的远古生物,对他们威胁最大的要数野兽了。瓜哥是一家之长,看着别的部族的相继因意外消失,是他不敢尝试新的事物,在其强烈的家庭责任感之下,使瓜哥变得独断,他不允许家族类的任何人接触任何新鲜事物。日子就这样周而复始的过了,咕噜一家老爸瓜哥的呵护下,采集食物、躲避野兽的攻击、听老爸讲叙只要尝试新鲜事物就

27、会灭亡的洗脑故事,在黑漆漆的洞穴里过着一成不变的生活。与父亲的性格截然相反,咕噜家族的大女儿小伊则是个与顽固的、经验老道的老爸瓜哥性格截然相反的女孩儿,她叛逆、勇敢,对外面的世界充满了好奇心,她不希望自己的一生仅仅在这个小山洞中度过,她渴望追逐山洞外面的新奇世界。于是在某天小伊偷偷地离开了她居住了“一辈子”的山洞,展现在她眼前的是一个崭新绚丽却又充满危险的新世界,到处都是食人的花草和叫不出名字的奇异鸟兽,当然她遇也到了前所未有的危机。10 TELEVISION|影视 J 音乐时空 2013年5期10在欢乐的奔跑中,她还遇到了其他部落族人留下石文碎片,文字的领悟让她学会了很多新的技能,自身也逐渐

28、拥有了更多超凡的创造力和革新思想,并将其传授给自己的部落,帮助大家躲过了很多困难,让我们和小伊在游戏中展开了一场欢乐而又惊险的旅程吧!3.2 功能操作设计本游戏的基本结构为顺序结构,当点击手机屏幕上的icon时,游戏开启,即可进入游戏主界面,主界面有:“play”、“排行”、“成就”、“退出”及“关于”,其功能分别为开始游戏、进入成绩排行系统、进入玩家成就系统、退出游戏及获得游戏信息。点击主 界面上的“play”按钮时,系统便开始在后台不断加载、更新游戏中所需要的资源,而后来到短暂的loading界面,提示玩家游戏正在加载,只需稍等片刻便可以开始游戏。探险正式开始,玩家进入游戏进行时界面,玩家

29、从屏幕左上角下落至跑道上,开始奔跑,玩家可以通过点击屏幕对角色进行控制使其起跳,以便越过路坑、躲避怪物,当玩家触及特定区域时,即屏幕的右下角区域,便可控制角色扔出石块打怪。当玩家点击暂停按钮(屏幕左下角)时,进入暂停界面,游戏即可随玩家命令进行暂停,暂停界面有关于当今玩家所跑的米数的展示,可以对声音进行相应设置,还可以选择继续游戏或退出游戏。主角小伊的初始状态为5格能量,奔跑的过程中,若其撞到怪物和矛,或被远古龙的火球攻击击中时,均会损失能量。当然有损失便得有获得,在玩家奔跑的过程中可以通过喝路边的能量水,对其损耗的能量进行相应的补充。当玩家在奔跑的过程中获得三个石文碎片时即可学会新的技能,进

30、入短暂的无敌状态,浮在空中,在其状态内游戏角色小伊就不会被怪物、以及远古龙的火球攻击所伤,并自动攻击所在路线上的怪物。当主角小伊的能量为零时或者因玩家操控不当而不慎掉落坑中的话,便结束此次冒险,进入游戏的结束界面。游戏结束界面包括:“退出”、“提交分数”、“再试一次”、“成就系统”等按钮以及对探险结束时玩家所跑的米数进行展示。在游戏结束界面时,点击退出按钮,即可返回游戏主界面再次进行选择;若点击提交分数按钮,即可开启分数记录系统,玩家可以往里面录入玩家姓名,输入完成后系统将会把信息进行录入,记录在排行榜中。若点击再试一次按钮,即可游戏重新开始,点击成就系统按钮,将进入成就系统,玩家可查看其目前

31、为止所获得的成就。3.3 功能模块设计游戏的功能框图如图3-1所示:分为游戏主界面、游戏进行中、游戏暂停、游戏结束、游戏排行榜、玩家成就和关于我们七部分。其中,游戏主界面模块是玩家用来选择的:可以选择开始游戏,或是查看排行、成就、关于等信息,再或是直接退出游戏;游戏进行时模块:玩家可以在手机上操控和角色使其进行奔跑、跳跃、扔绳索、投掷石块及躲避怪物等动作,亦可暂停游戏查看成绩;游戏暂停模块:玩家可在此模块查看成绩,以及对声音进行设计用来动态管理词汇信息和学生信息;学生通过Web浏览器访问它,用来进行英语单词的背诵和测试。本游戏的系统功能框图如下:图3-1 游戏功能模块图图3-1-1 游戏结束模

32、块图图3-1-2 当游戏开启时的主界面功能图3-1-3 游戏进行中的界面图3-1-4 暂停界面功能框图布局如下:关于游戏标题开始游戏排行榜成就退出主角小伊图3-2-1 主界面布局背景图疯狂原始人跑酷加载条图3-2-2 加载布局图3-2-3 游戏进行中布局成绩设置声音继续游戏退出游戏图3-2-4 暂停游戏布局退出游戏结束成绩提交分数再试一次成就系统图3-2-5游戏结束布局文本:疯狂原始人跑酷我的排行姓名:成绩:姓名:成绩:姓名:成绩:姓名:成绩: 我的成就XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX奖章奖

33、章奖章奖章XXXXXXXXXX奖章 游戏介绍开发者信息特别感谢图3-2-6游戏排行榜布局图3-2-7游戏排行榜布局图 3-2-8游戏排行榜布局3.4 游戏界面美化设计制图列表为给玩家带来更好的视觉享受,使该游戏更具娱乐性,我将游戏界面中所需美化的元素进行罗列,以便后续进行美化。需美化的界面需美化的内容安卓手机桌面疯狂原始人跑酷游戏icon主界面开始游戏按钮、排行榜按钮、成就系统按钮、关于按钮、退出游戏按钮及主界面背景图游戏进行时界面主角跑动动画序列、主角扔石头状态图、主角扔出的绳索、主角无敌状态动画序列图、主角受伤动画序列图、小怪运动动画序列图、乌鸦飞行动画序列图、障碍物矛、远古龙动画序列、远

34、古龙攻击火球、路、能量块、石文碎块、暂停按钮、石头攻击按钮及三张游戏进行时背景图加载界面加载背景图及加载条游戏暂停声音设置按钮、继续游戏按钮、退出游戏按钮及暂停框背景排行榜界面排行榜界面背景成就系统界面成就系统界面背景、获取某项成就前后的奖章关于界面关于界面背景退出游戏界面提交分数按钮、再试一次按钮、成就系统按钮、退出游戏按钮及游戏结束按钮4 游戏实现4.1 Android手机游戏程序的实现准备工作:图4-14.1.1 SurfaceView 类来进行改善主线程阻塞现象的实现由于我所设计与开发的这款游戏需要很多的动画效果,为减缓主线程的堵塞现象,为防止阻塞当前UI线程的操作,为减少处理事件的时

35、间及系统的负担,于是我引入了SurfaceView类,其继承于View类。通常情况下,程序的View类和用户响应都是在同一个线程中进行处理的,而为了防止过多的其他内容占据主线程资源,这也是为什么当我们需要处理长时间事件(如网络连接、XML解析、数据库访问等事件)时需要把其放到另外的线程中去的原因了。但众所周知的是在其他线程中我们是不能对其UI元素进行修改的,如果在非UI线程呼唤主线程的话,就会程序就会抛出异常。如果想要在非UI线程(必须在保证主线程具有短小的特性时,才能做到随时响应用户的需求,主要是因为主线程会负责绘图及事件的监听工作)中绘制界面并且需要迅速的更新界面,再或渲染UI界面需要较长

36、的时间的话,这种情况就需要用到View类的继承类SurfaceView类了。SurfaceView中包含一个Surface对象,而Surface是可以在后台线程中绘制的。SurfaceView的性质决定了其比较适合一些场景:需要界面迅速更新、对帧率有较高要求。使用SurfaceView需要注意以下几点情况:SurfaceView和SurfaceHolder.Callback函数都从当前SurfaceView窗口线程中调用(一般而言就是程序的主线程)。有关资源状态要注意和绘制线程之间的同步,当然额外的绘制线程,也会对会系统的资源进行额外的占有、造成消耗。我还用到了SurfaceHolder类,我

37、们可以通过用来SurfaceHolder类操纵surface。处理它的Canvas上画的效果和动画,控制表面,大小,像素等。 下图为SurfaceView的绘制过程: 图4-2 SurfaceView的绘制过程首先继承SurfaceView并实现SurfaceHolder.Callback接口, SurfaceView类的重写的方法有: surfaceChanged(),在surface的大小发生改变时激发;surfaceCreated(),在创建时激发,一般在这里调用画图的线程; surfaceDestroyed(),销毁时激发,一般在这里将画图的线程停止、释放。程序实现如下:public

38、void surfaceCreated(SurfaceHolder holder) public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) public void surfaceDestroyed(SurfaceHolder holder) 实现SurfaceView类的整个过程如下:第一步:继承SurfaceView并实现SurfaceHolder.Callback接口 第二步:SurfaceView.getHolder()获得SurfaceHolder对象 第三步:Surface

39、Holder.addCallback(callback)添加回调函数第四步:SurfaceHolder.lockCanvas()获得Canvas对象并锁定画布第五步:Canvas绘画,这里我把绘画的代码都try了起来,因此,当一个异常状态被抛出时,系统也可以在finally中执行该操作。这样会抵消异常状态下产生的损失从而使Surface出去的状态与之前一致。第六步:SurfaceHolder.unlockCanvasAndPost(Canvas canvas)结束锁定画图,并提交改变,将图形显示。程序如下实现:/继承SurfaceView并实现SurfaceHolder.Callback接口p

40、ublic class SxRunSurfaceView extends SurfaceView implements Runnable,SurfaceHolder.Callback public SxRunSurfaceView(Context context, AttributeSet attribute) holder = getHolder();/获得SurfaceHolder对象holder.addCallback(this);/ 添加回调函数,给SurfaceView当前的持有者一个回调对象public void myDraw() try canvas = holder.lockC

41、anvas();/获得Canvas对象并锁定画布,并提交改变。一般在锁定后就可以通过其返回的画布对象Canvas,在其上面画图等操作了。if (canvas != null) switch (status) / Canvas绘画 catch (Exception e) e.printStackTrace(); finally if (canvas != null) holder.unlockCanvasAndPost(canvas); / 结束锁定画图,并提交改变。4.1.2 游戏音乐音效的实现我通过使用MediaPlayer和SoundPool类来播放音频,可以从原文件中播放,这些音频媒体文

42、件全部放在res/raw目录下。音乐类MediaPlayeSoundPool实现步骤第一步:调用MediaPlayer.create(Context context, Uri uri); 利用MediaPlayer类调用create方法并且传入通过id索引的资源音频文件,得到实例;第二步:得到的实例后就可以调用 MediaPlayer.start();MediaPlayer.stop();MediaPlayer.pause();等方法了第一步:new出一个实例 ; new SoundPool(4, AudioManager.STREAM_MUSIC, 100);第一个参数是允许有多少个声音流同

43、时播放,第2个参数是声音类型,第三个参数是声音的品质;第二步:loadId = soundPool.load(context, R.raw.himi_ogg, 1);第三步:使用实例调用play方法传入对应的音频文件id即可。优势适用于播放比较大或比较长的音频文件低延迟播放,适合播放实时音实现同时播放多个声音劣势资源占用量较高、延迟时间较长、不支持多个音频同时播放等最大只能申请1M的内存空间,意味着用户只能使用一些很短的声音片段,而不能用它来播放歌曲或游戏背景音乐。适用于背景音乐简短音效由于游戏独特的性质,导致在游戏中会同时出现许多声音,而 MediaPlayer类的特性并不支持实时播放多个声

44、音的,且会出现或多或少的延迟,尤其当我们需要连续的、快节奏的播放某些声效时,如主角小伊投掷石块时的声效,当我在游戏测试时就会感到很卡,即出现时间延迟现象,这样对游戏的娱乐性会大打折扣,是十分不利的,所以此时我们便要恰当使用SoundPool类来解决相应问题了。我在使用SoundPool类时也出现了些小问题,即系统容易出现异常关闭现象,经我反复测试后,以及上网搜索问题,最终发现原因所在。原来是SoundPool类对于wav格式的音频不能较好的支持,只要把音频们用格式工厂转为OGG格式即可。在MySxRunActivity / src / sxrunmain / music / GameMusic

45、 . java中调用MediaPlayer.create()函数,由create方法创建一个指定资源索引的MediaPlayer对象,然后方法start()、stop()、pause()方法实现对音频开始、停止、暂停的调用。在MySxRunActivity / src / sxrunmain / music / GameMusic . java中程序实现如下:public class GameMusic private static Map soundMap; / 音效资源id与加载过后的音源id的映射关系表/ 初始化风声播放器public static void windMediaplayer() mp = MediaPlayer.create(context, R.raw.wind); /context代表环境,R.raw.wind为音频的资源IDmp.setLooping(true); /循环播放音乐/ 初始化 run播放器public static void runMediaplayer() mprun = MediaPlayer.create(context, R.raw.run);mprun.setLooping(true);/ 初始化背景音乐播放器

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号