基于unity3D的华丽弹幕_第1页
基于unity3D的华丽弹幕_第2页
基于unity3D的华丽弹幕_第3页
基于unity3D的华丽弹幕_第4页
基于unity3D的华丽弹幕_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

中文摘要从街机游戏到计算机游戏,信息技术的影响将与信息技术相伴,未来的发展将受到非凡的影响。加上现代5G的起步,以后更是行业大动荡时期,将萌发新游戏时代。今天,世界正在迅速发展着电子游戏产业,这是人们的生活,且这是当今所谓的第九种艺术的组成部分,电子游戏的崛起已经给全球带来巨大的经济收入。相对应的游戏引擎也在更新迭代,为游戏提供更强大的技术支持。在现在的时代来看,Unity3D的发展已经深入民心,基于Unity3D引擎开发的游戏越来越多。本文结合华丽弹幕游戏开发需求,分析了解了业内游戏现状,关注了其他游戏的优缺点,总结了游戏过程中的一些常见问题,分析对比不同游戏之间的差异与共性。本文主要涉及游戏及其各个方面,根据游戏的实际需求选择Unity3D机器作为游戏开发引擎,最后使用Unity3D易于使用的功能开发了一款游戏。轻巧美观的解决了3D生产过程中的关键技术问题,以此完成毕业设计的阶段性目标。关键词:游戏;Unity3D,设计;华丽弹幕游戏第一章绪论1.1研究背景随着时代进步,电子游戏产业悄然从路边街机转身投入家用领域,越来越多的人们开始将消费需求转向新兴的文化层面,这就是被称为第九艺术的电子游戏。人们开始更多的关注电子游戏的发展。传统的电视电影文化节目的影响力在被电子游戏削弱,人们更多的喜欢将消费投入游戏中。那些排名位于世界前列的游戏公司创了上百亿的收入,其规模远远远超过一般的电影票房,而产生的经济收入对当前的电视娱乐节目产生不小的影响。统计海量数据明细得知在我国这个行业每年的实际总产生的销售额是数千亿,而且不断增长的趋势。毫无疑问游戏产业是国内经济的潜力股,这说明游戏行业是个可继续发展并且会带动经济增长的一个行业。本文以基于Unity3D的华丽弹幕游戏制作为主体,详细介绍了游戏从最开始策划设计过渡项目最终完成的完整过程。游戏的设计一开始要先了解3D游戏设计思路弄清楚思路才能得心应手,然后就需要熟悉Unity3D的基本使用手册,了解对项目开发有益的插件。Unity3D基于使用C#语言可以方便相关脚本的编写。最后项目完成后导入到相关设备上调试。1.2研究现状1.2.1国内研究现状对于Unity3D这样一个最新出的、饱受争议的游戏引擎,在我国,还没有相对来说比较完善的、整体性强的中文教程,可以说大部分的Unity3D的教程比较零散,初学者学起来需要花费一定的时间去搜索资料。所以,在Unity3D产品与项目需求大量出现的时候,由于缺乏熟悉Unity3D特性的人员,对人才和技术积累的漠视以及对Unity3D技术的先前收集的缺乏最终导致了该项目的许多Universe项目中的许多废弃。本文研究基于Unity3D的设计游戏的设计和开发。本文使用Unity3D入门,具有简单,易于操作,易于理解和其他功能。开发一款简单的独立游戏,重点解决一系列重要的游戏开发问题,例如框架设计,美术资源管理和屏幕自定义。投资者可以根据游戏的演示进行对其一系列的评审观察,最后敲定是否可行从中吸收一定的经验,其具有重要的创新和借鉴意义。1.2.2国外研究现状游戏的用户只会一直在增从来不会减少,从而开发也会相应提升,所以研发者和玩家都是持续增长oUnity3D还可以开发虚拟现实游戏和应用程序。根据Unity3D的调查报告,通过多种选择,UnityChina已成为全球最大的开发商,用户活动和终端设备。在全球范围内,Unity有超级多的市场几乎占据大数,并在全球拥有最大的市场份额。离我们最近的美国只占我们市场份额的三分之一。Unity在全球拥有超过60万个月的活跃用户。不仅如此,东南亚的快速发展也带动了该地区国家的电子产业对于全球性的Unity具有长远意义。基于Unity的手机3D游戏也如雨后春笋般冒出。由此看来Unity在国外的发展状况非常热门,前景良好。1.3研究意义1.3.1对技术推广的意义借助Unity3D,开发人员可以轻松创建3D视频游戏,建筑可视化效果,实时动画等。它是一个全面的多平台游戏开发工具,可让您创建交互式内容。例如,强大编辑能力,专业的游戏引擎,处理相关项目。Unity3D可以运行在各式各样的平台上丝毫没有压力。由于易于操作,因此易于使用,后来被开发为可在各种平台上甚至在Web上分发。Unity3D可以以C#或JS为脚本语言,适用于游戏脚本语言的开发人员。Unity3.5.x的最新版本提供了Flash游戏的发布,这降低了游戏的最大开发量,降低研发人员门槛可以做到个人或者单个游戏工作室都可以进行游戏研发。1.3.2对个人技术的意义项目中主要用的语言是C#,C#是开发人员众所周知的当今广泛使用的Unity3D开发技术。熟练使用C#已成为游戏开发者的必备基础。通过此项目设计,学习Unity3D的印象更加深刻,并增强?Unity3D技术的兼容性和理解力。1.4研究内容本次毕业设计的研究内容展示了基于Unity3D游戏设计实现中的具体工作。主要工作分为以下几个方面: 第一章确定研究方向和课题的意义背景。第二章介绍相关Unity3D技术以及脚本的使用等。第三章介绍游戏可行性分析、系统分析、性能分析。第四章介绍游戏的主体框架和总体设计包括音乐和音效等。第五章详细介绍游戏整体设计以及实现功能等。第六章介绍做系统测试用例,判断项目运行。第二章关键技术简介2.1Unity3D简介今天的游戏领域已经包含了大大小小的跨平台游戏,他们在占有很大的市场,通过自己的方式扩散着游戏的影响力,其中Unity3D有着非常非常优秀的开发引擎,提供给人们去可视化的开发游戏。它在游戏的场景、画面、脚本等各方面设计能力极强,出色的灯效,游戏讲究的是动态灯光,画面效果;Unity3D支持众多的平台发布游戏,它有着非常好的兼容性支持游戏项目的开发运行。一个非常好的证明是,在很短的时间里,Unity3D引擎在众多的平台,开发的PC游戏并且具有兼容的数量遥遥领先。不仅如此,它对手机游戏的开发中,也是大力支持的,所以在手机移动端领域也呈现井喷式增长,以Unity3D引擎开发的手机游戏已数不胜数。Unity3D最早诞生于3位年轻人手中,最初他们的想法是让全世界的开发人员可以用最少的资源开发出他们喜欢的游戏,数十年后,Unity3D有着大批的开发用户,这是因为Unity3D游戏开发引擎通俗易懂的制作办法结合非常创新的可视化制作环境,对于用户来说,它准备了大量教学的课程,对于使用软件的人来说,它有着非常高效、友好的资源管理系统,完善的的脚本语言等等,使得Unity3D在众多的游戏引擎中大方光彩,这种光彩也吸引了许多游戏的爱好者去了解,也因为它及其便利的制作方式而促进了很多游戏独立开发者的制作,这对游戏的发展是具有意义的。2.2相关Unity3D技术知识2.2.1物理系统Unity3D有一个名为的NVIDIAPhysx内置引擎系统,它算是一个比较普遍被运用到的物理引擎。游戏制作者如果需要模拟现实的物理效果,或者需要模拟现实生活中的自由碰撞以及跌落摔倒等等自然反应,就可以使用这个物理引擎来为物体赋予rigidbody,从而达到自己需要的物理游戏效果。一般来说,游戏中的物体只有在有严格的身体构成时才会受到重力的影响。添加到游戏对象的脚本以及与物理引擎计算的其他对象的交互时也需要添加刚性组件。碰撞体Collides是可以添加到具有刚性物体的游戏对象用来触发碰撞的物理组件。Collides在软件中,以多种形状出现,比如地形的碰撞器,标准的BoxCllides等等。在游戏的制作中,这两个组件是一个很好的搭档。Rigidbody和collides说的结合,可以让需要有碰撞效果的物体达到这种碰撞效果,在这个项目中,得意这两个组件,让我的项目能够更加完整的呈现。2.2.2UIGUI插件游戏制作是界面ui呈现和脚本技术缺一不可的,在游戏中,有一个好的比较稳定的ui插件就显得非常的重要了,一个游戏的画面呈现能决定玩家是否会继续玩下去。UIGUI算是是一个内置的插件,更最先开始出现的GUI比较起来,它有很多的可视化按钮、调用事件,它是一个独立的插件包,不会跟随着Unity版本的不一致而去发生不稳定的变化,对于游戏开发者来说,即使是在不运行游戏的情况下,它也可以任意调整UI界面。2.2.3脚本系统Unity3D脚本开发是整个游戏开发过程中的重要环节,即使是简单的游戏我们通过脚本的编写才能实现用户的操作,可以说脚本是项目必不可少的一部分。此外游戏常见的事件触发、游戏对象的创建与销毁等都需要通过脚本来控制。Unity3D中可以选择两种脚本进行开发,分别为JavaScript和C#。Unity3D使用的JavaScript语法与网页开发中基本相同,也可以称其为Unity脚本。而C#是一种分别借鉴了C++和Java优点的语言,本游戏项目是基于C#语言进行开发。2.3Unity3D制作游戏流程(1) 游戏策划游戏的有趣性往往离不开策划脑海中的灵感,没有经过策划,游戏的第一步就无从下手。策划的主要工作通常是编写游戏世界观从中获得故事,制定游戏规则,加强玩家与游戏的互动性,整个游戏世界世界观的详细细节。(2) 游戏原画设定一个游戏在进行脚本的开发之前,美术需要根据策划案来画出相对应风格的图集的,其中包括游戏的LOGO、游戏的特效、游戏的道具以及游戏的场景等等。程序,美术缺一不可,美术可以说是一个游戏风格走线的设计者和把控者(3) 游戏的模型及贴图制作在制作3D游戏时,游戏中的场景建模或者是人物角色建模和道具建模是能少的,这需要3D建模师根据策划案,去制作出能够符合游戏的模型,并且给这个模型贴上图片,模型和贴图的好坏绝对会让游戏增色不少。(4) 游戏的程序编写当游戏大体完成后,研发者就要写代码实现游戏里面各种角色的操作了,界面交互,伤害的计算,血量的计算,AI的行动方式和巡逻路径等。没有脚本编写的游戏相当于断了线的木偶,只有编写好了程序才能通过挂载在物体上使其运行。游戏的测试在一个游戏制作完成之后,就非常需要去测试游戏的功能是否能够顺利运行,去注意到游戏的UI界面、细节等是否达到了自己想要的效果。测试得越早,以后解决BUG的时间成本就会越低,所以在开发初期,测试就应按计划流程阶段进行。在游戏的开发过程中,会使用其他的的软件和其他的插件应用,使用的软件也因经过测试才方便配合游戏的创作。游戏初期版本的开发涉及到游戏初期的运行测试。综上所述良好的游戏开发需要大量的测试辅助完成,测试能尽早发现游戏开发过程中的弊端。2.4C#简介c#语言是微软公司开发的编程语言。在众多的语言中,它有着不可替代的优点,相对比于C++,他更加的简单易懂,对一个入门级别的程序开发者来说,它是友好的,也更加稳定有效。除此之外,C#能够很方便快捷的在其他IDE当中使用,因为C#把核心从Windows和VisualStudio当中剥离了出来。这就说明开发者可以用任何的自己擅长的喜欢的IDE或者编辑器去编写C#脚本。总体来看,C#语言特点非常明显,简洁、稳定、方便快捷。它是一个站在开发者角度的一个脚本编辑器,它在拥有简单,易上手的巨大优点的同时,也兼顾到了程序开发者非注重的特性,C#也从专有的技术转化为了一个开源技术,这对C#的发展来说是非常具有重大意义的。第三章系统需求分析3.1可行性分析该软件的可行性分析是为了保证系统的开发,其后的可用性和可持续性,并预测项目结束后可获得的经济效益。技术可行性考虑实施项目所需要用到的资源要考虑当前开发人员技术上限,同时应详细考虑项目所需要的技术以及开发过程的棘手问题。Unity3D支持的插件也越来越多样化同时丰富了开发者的需求,开发界面的GUI,作为用户的交互控件可以方便进行游戏交互的开发。Unity3D在PC端上有着不俗表现,将华丽弹幕游戏发布实现看来是能达到预期效果。基于Unity3D的华丽弹幕游戏的设计与实现在Unity下完成,Unity支持多种编程语言如使用频繁Javascript、C#等。在Unity3D的整洁工作界面环境下,即使是初学者也能通过简单的代码完成简单可用的原型,从最开始的只支持打包导出exe文件,到支持跨平台应用发布,并且在Unity也在迭代更新,通过一系列的更新表明开发者手中还在继续探索着Unity的可发展领域并不断将Unity可用性扩大。综上所述,基于Unity3D的华丽弹幕游戏的开发技术具有很高可行性,开发者通过获得一定开发技术来开发游戏。可行性对于该游戏项目来说是理论可行的。经济可行性一个成功的游戏从开发运行到后期维护更新,包含了大大小小的费用,从公司注册成本再到时间成本、人力资源成本、机会成本,可以说一款优秀的游戏所花费的人力物力资源并不少。基于Unity3D的华丽弹幕游戏的设计与开发的过程中,开发成本不高,早期的开发和投资系统不必投入大量资金,从而降低了成本并提高了效率。从经济角度来看,改游戏前景是很有可行的。管理可行性因为此游戏的任务简单明了,所以玩家可以直接使用简单文档中描述的紧急联系信息进行工作,而无需其他管理和人员管理。因此,从管理的角度来看,基于Unity3D的华丽弹幕游戏是合理的可行的。法律可行性本游戏项目主要用于提供广大喜爱华丽弹幕游戏者一同欣赏娱乐,同时主要以学习为主,不参与商业活动,因此在法律上是可行的。3.2需求分析开发者建立了一个逻辑世界观,完善游戏主要目标,让玩家在虚拟世界中体验现实,探索自我。体验虚拟世界中无法通过游戏在现实世界中探索的事件,找到不 属于现实世界的虚幻从而获得满足感。要达成这个阶段就要分析游戏项目需求的功 能,确定系统必须要完成的水平。从需求分析来看,充分考虑目标人群想获得的内 容,玩家在什么样的场景会使用,玩家使用时将碰到程序上问题等。 游戏开发过程的过程可大致分为游戏前期策划和游戏制作实现,前期经过开发 者策划制定游戏初步方向并打下理论基础。开发过程中遇到的实际问题应反射到前 期策划的方向上,策划与制作应相辅而成。决定游戏的可玩性往往取决于策划文案, 众所周知策划文案是大多数游戏的生命线,玩法不够创新必然使得游戏失去可玩性导致玩家流失,企划游戏时必须选择好的主题,根据游戏的内容决定游戏的风格和 逻辑,丰富了游戏题材才能让玩家自然而然喜欢上游戏。游戏开发阶段以及两者之间关系如图3.1所示。提供依据 游对前期策划爺 T游戏制作实现反愦图3.1游戏开发流程3.3游戏性能分析可靠性需求 游戏可用性:普通玩家可以使用游戏文档来满足一般的操作要求,界面设计非常合理,玩家能方便的使用游戏进行游玩。游戏的完整性需求信息记录保持完整,保证信息不被非授权者轻易修改内容。在保持信息在传输、 交换、储存和处理期间,性能数据应予以披露、丢失、未经许可更改和具有最安全的特性。性能需求 游戏能执行所有功能且不占用大量资源,响应时间决定游戏的反馈时间,考虑 到该游戏项目为单机类型,估算游戏性能要求不高,实现项目运行是完全可行的。易用性需求进入游戏时,用户必须根据游戏文件的要求理解游戏中的所有操作。游戏界面 的布局尽可能简洁舒适,用户需要与可视化画面对应的提示和帮助获得相应引导。3.4本章小结首先对游戏的可行性进行分析,主要包括技术可行性,游戏性能,开发流程可行性等确定游戏开发可行性。然后对游戏进行功能性需求分析,在游戏创作阶段同时要注意非功能性需求分析方便确定游戏项目的具体内容。第四章游戏设计4.1框架设计基于Unity3D的华丽弹幕游戏开发环境在Unity下进行,使用UIGUI提供图形方式显示界面,UI系统会自动创建EventSystem负责监听输入的信息。简洁的界面有利于提高工程项目制作的效率。Unity引擎开发中的界面如下。图4.1unity3D游戏开发图开发界面主要由菜单栏,工程面板,游戏场景,层次版面等组成。(1)菜单栏显示了全部unity中操作的选项,开发者通过菜单栏执行打开、保存工程文件等操作,菜单栏如图4.2所示,游戏开发中的UI通过Component选项打开创建。FileEditAssetsGam-eObjectComponentWindowHelp图4.2Unity3D菜单栏图 (2)工程面板是Unity3D的重要组成部分。下图工程面板中是unity3D工程中的源文件夹,里面包含了该工程的全部项目文件,开发者可以在该文件中导入导出资源,如果在文件系统中修改文件,工程面板文件显示也会自动更新。图4.3unity3D工程面板图(3)游戏场景是unity3D开发的可视化窗口,场景分为Scene和Game,开发者通过Scene的可视化场景进一步搭建场景然后通过Game画面进行即时模拟。摄像机是场景里的重要组成部分,而游戏最终画面是由摄像机的位置和拍摄画面决定,不同于代码的字符,可视化场景方便开发者更好的完成游戏开发需求。场景面板如图4.4所示。图4.4unity3D游戏场景展示图(4)监视器也是unity3D的重要部分,相当于文件的详细信息显示。开发者在监视器查看Gameobject中的信息,对信息进行修改。开发者在左边GameObject列表选择后监视器会展示其详细信息。下图为Canvas的详细信息图图4.5unity3D监视器图4.2总体设计4.2.1游戏功能设计目前游戏在市场上热度暴增也让很多人把关注点放在了游戏身上,人们将空闲的时间打发在游戏上已经是越来越普遍的行为。游戏受欢迎的原因有易于上手的便捷性,游戏交互的娱乐性还有游戏的可操作的自由性。在基于Unity3D的华丽弹幕中,玩家需要通过巧妙操作躲避子弹,游戏的设计为关卡式,在游戏内能随时暂停。本文基于Unity3D的华丽弹幕游戏使用的是关卡式,必须要解锁完成这关本关然后才能有资格进入下关。该游戏的功能图如下图所示:基于Unity3D的华丽弹幕游戏查看生命值保存游戏记录显示成绩选择音效查看排行榜开始游戏继续游戏暂停游戏选择游戏模式查看生命值保存游戏记录显示成绩选择音效查看排行榜开始游戏继续游戏暂停游戏选择游戏模式图4.6游戏功能设计图4.2.2美术与音效设计设计游戏界面风格与游戏音效也是游戏设计中富有意义的一部分。好的游戏设计的优秀艺术风格游戏也会被世人铭记,游戏被称为第九艺术也并非浪得虚名,传统艺术或多或少的影响游戏方面的美术,基于传统美术上的方面开发者需在游戏中创作属于自己的艺术领域。游戏美术设计也是游戏艺术的一部分。很多出色的开发者参与游戏的制作,其中游戏艺术家决定了游戏的品质,游戏艺术家具备专业的美学知识和游戏设计知识,并在游戏中合理利用自己的传统美学知识融入到游戏里。•Prajcct-□Console匚re-at4?—Animatinn% ,只三罷也•吨5^少匸所・fiudioEOpS云FontsAudiaCliitfaflpsaounoeisAudiaCliitalPicturei^aiButtlet云EffecthiPlaneDesb'D/MEnemyiSItemMap图4.7音频管理基于Unity3D的华丽弹幕游戏,除了游戏美术之外,游戏的声音决定了游戏的模拟真实程度。声画一直是游戏表现力的重点,开发者希望玩家看到画面听到声音并沉浸在其中,通过游戏声音玩家也能判断自己所处的环境做出相应的判断,可以说音效也有引导的作用在里面。声音与游戏画面紊乱则会提供错误的信息,玩家难以用正确的操作反馈从而大大降低了可玩性。同样音效也非常重要,不能缺少。4.2.3运行环境设计游戏开发时候需要的环境要求为:winlO系统以及以上操作系统之中。该工作环境下的处理器为英特尔酷睿17-7700HQ四核处理器。操作系统为winlO旗舰版,win7,win8版本亦可。4.2.4游戏关卡设计(1)游戏难度内分简单和困难模式。游戏敌机分普通飞机,中型飞机,boss三种简单模式:普通飞机①类发射指向性弹幕,朝飞机下方一次性发射一串子弹;普通飞机②类发射不同速度的随机密集弹幕(困难模式的子弹速度加快);中型飞机同时发射指定玩家飞机方向的扇形子弹和随机子弹(困难模式的子弹数量翻倍,扇形距离扩大子弹射出速度增加);boss同时拥有普通飞机和中型飞机的子弹攻击。游戏中还可以点击屏幕上方的模式暂停游戏。死亡后显示玩家分数成绩和历史最高纪录并询问是否输入名称记录排行榜。图4.8参考飞机发射弹幕(2)特色消除弹幕判定:游戏进行中玩家可以通过按住鼠标左键完成开火、放大招、消除弹幕等操作。自机的判定为飞机正中心的一个较小圆形区域,只要该区域不被子弹打中,不算自机被击落,相对应的敌机会发射大量密集弹幕,为了应对密集弹幕,消除弹幕按键是专门为缓解玩家压力而做,消除弹幕是随着时间增加逐渐积累的进度条,当进度条满了,按下大招旁边的键位即可立刻消除区域弹幕。消除弹幕如图4.9。privatevoidCleofEulLatHandla0/消除;理Ic1earBulletTimer■-TimeLdeltaTime; .?'U、.;It\ .I|Ul:'JHif(clearBulletTimer<clearEulletCd) i1P幕消险2间小丁勃「3肖-/'CD.I':(Ev«I:tCenter.Bruadcast(EventBefine-CpdateClearBu11.etPrghclearBull^tTimer/clearBu11etCd);isRefreshPig-false: -"i.'i)■else■I(if(!isRefreshPrg)(■iEventCenter.Broadcast(EventDefine.Update€1earBulietPrg3clearBui1etTimer/elearBulletCd);isRefreshPrg=true;//Al[|新i:}:)}图4.9消除弹幕(3)当敌机死亡时候调用父类死亡,通过DestroyGameObject将敌机于游戏中销毁并同时播放爆炸动画效果与音效。publicoverridevoidDie(){CreateDestroyEffeet(newVector3(0.6fp0.6f,If));//创建摧殿特效和特效尺寸大小AndioManager.Instance.PlaySound(AudioConst.EFF_EXPLODE_1):〃调用音效GameManager.Instance.AddScore(score>增;.l[分以base.Die0;■■■'/调用父类死T二方法图4.10敌机死亡代码图4.11摧毁爆炸效果动画(4)游戏场景滚动播放。背景图片通过this.transform.translate()缓慢向下移动,在通过v3postion实时获取当前地图移动坐标判断是否循环。如图4.12所示。]puiblicclassBackEonuidLaGp:UonoBehaviour{- publicfloatspeed=2f:* private观idUpdate()«if(GaweManager.Itistaiice.GameStaie!=GaneState.Battle)return;「丁如果不是在战斗状念就不用蓿环:this,transforn.Translate(l'eetor3down*speed*TitaedeltaTime);■iMR项Vectox3pDation=this,tzaasfom-position;•次时汩;;地底移动坐标;//地图超过了这个范国又重新惘坏]:;if(postiotLy<=-IL5fJtrosform.position=newVectors(postloti. gsostion.y+IL5f*2?postion.s);图4.12场景滚动播放4.3 本章小结基于Unity3D的华丽弹幕游戏设计首先给出了游戏基础设计模型和整体设计思路。根据设计思路中的内容编写游戏项目,需求分析对游戏整体进行分析,将游戏大体分成细节进行编写,敌机的生成运行与子弹射击音效处理,最后保证游戏开发流畅,并设计软件的运行环境。通过设计完善游戏从而进一步实现。第五章游戏实现游戏实现后,可进行游戏打包与发布。选择游戏要发布到的平台,然后添加要发布的场景。完成生成设置之后,进行详细设置阶段。点击bulid,设置游戏名称将游戏打包生成。完成以上两个步骤之后,成品文件介绍。5.1屏幕设置在初次打开的时候,可以在页面中进行设置屏幕大小,进行设置的界面如图所图5.1游戏配置界面5.2游戏主要界面如图5.2所示为主界面,玩家可以通过该主菜单界面选择开始游戏,游戏主界面展示如下所示。其中包括开始游戏、排行榜、设置遗迹退出游戏等选项。整体界面由MenuPanel、SettingPaneKRankPaneKBattlePanel四部分组成。图5.2游戏主要界面5.3游戏内界面玩家点击开始游戏按钮后,马上可以开玩。如果正在进行游戏,则玩家可以单击简单模式停止游戏并退出游戏。左下角为大招按键,上面显示2/2表示当前可用次数为2次,上限次数最大为2。最下方的弹幕消除会随着时间增长而累积,满格之图图5.6音效设置界面图图5.4定义多种子弹类型后可按下右边的弹幕消除清除弹幕。图5.3参考游戏界面普通飞机会发射指向正下方的一串弹幕;另外一类飞机发射不同速度的随机密集弹幕;困难模式的子弹密度增加;红色小飞机朝下方发射指定方向的子弹和随机子弹;困难模式下的子弹数量翻倍,另外一类飞机扇形距离扩大子弹射出速度增加。通过以下代码定义四种子弹类型方便挂载在飞机类上。publicV'?idShootCftuillBtTypflbulletType,OwiuarTT^eVectorSp-dSifloatejk。圍iiitcount,iotatk,d:iectargs=cilII)1:Etch(buJletrype)1:<sase-BulletTypE.Efone:! :!break;cas?Bullet-Type.Single;£ingleBiilL^t.Slw>t(cvtier,posr紀1,玳虬>ar旺.);breai:caseBulletType™Sineletol:singleColBullet.Shoot(OTier,posPspeed,remit』at-Kargs);breal;;caseBulletiype,RandooClose:rstnd.ciQClcs&Eu]Le-t.Shoali'cmi&rtpcisrspeed,count,atkpargs):hreal;BiilletTypE.Secto-r;5&ctorBulletcShflot-(o«nrr3po*speed,c<xmtP玳虹argsl;breal;easeBuiletType„Las-eribreai:• :default:; ;breal;5.4排行榜保存界面玩家在游戏结束后可以通过图5.5所示界面代码添加玩家姓名,保存目前的游戏记录。输入的名字将会被记录在主界面的排行榜内。publicList<Record>GetRankList(GameModemode){if(mode=GameHode.None)1retuxnnul1;iListCRecord>records=mode=GawMode,Easy?easyRecords:hardReccrds;returnrecords™OrderBy(a=>a.score)„ReverseQ.ToList();)privatestringEncode(ListCRecord>records){stringdata.=foreach(varit巳elinrecords){data-string.Format(■*{0},{1}-item,tiame,item,score);由t化逐凱舟:収名了、分魏I 1}data=data.TrLJiiEtid(,returndata:)图5.5排行榜记录代码5.5音效设置游戏音效设置代码展示如下图5.6所示。拖动音乐滑条可以调节游戏界面的背景音乐大小,拖动音效滑条可以调节游戏内子弹音效等声音大小。IpublicclassAudioMana^Er:MonoBEhavioLir(publicstaticAudioMana^erInstance{get;privateset:。'平-I叫iiIprivatefloatmusicVolume-0.咅乐声咅publicfloatMusicVo]ume[get(returiimusicVoluihe;]}privatefloatsoundVoLuine=0.5F〃音效声音publicfloatSoundVolume(g

温馨提示

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

评论

0/150

提交评论