一款简单的3D游戏飞机大战毕业设计.docx

上传人:夺命阿水 文档编号:878603 上传时间:2024-01-06 格式:DOCX 页数:36 大小:322.51KB
返回 下载 相关 举报
一款简单的3D游戏飞机大战毕业设计.docx_第1页
第1页 / 共36页
一款简单的3D游戏飞机大战毕业设计.docx_第2页
第2页 / 共36页
一款简单的3D游戏飞机大战毕业设计.docx_第3页
第3页 / 共36页
一款简单的3D游戏飞机大战毕业设计.docx_第4页
第4页 / 共36页
一款简单的3D游戏飞机大战毕业设计.docx_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《一款简单的3D游戏飞机大战毕业设计.docx》由会员分享,可在线阅读,更多相关《一款简单的3D游戏飞机大战毕业设计.docx(36页珍藏版)》请在课桌文档上搜索。

1、摘要随着社会的发展,人们越来越注重工作和学习之外的娱乐生活。游戏作为一种常见的休闲娱乐方式,已经日益成为人们生活中的重要内容,而人们对游戏的耍求也越来越高。3D游戏作为-种依托丁-新视觉和体感的游戏,已经得到了越来越多的玩家欢迎。木次毕业设计旨在成功地设计一款简单的3D游戏一一飞机大战,在需求分析的基础1二进行功能模块划分,然后对各个模块进行分析和详细设计,并利用Unity3D等技术实现整个游戏。本游戏系统以Unity3D游戏引擎作为开发和发布平台,C#作为编程语言,PlK)tOShop作为图片制作基础,最终通过键盘实现对飞机模型的控制。玩家可以通过方向键来控制飞机的左右移动,通过空格键来控制

2、子弹的发射。系统会随机产生一些陨石,通过对飞机的左右控制并发射子弹来击落不断下降的陨石。整个游戏结构简单、操作容易、界面美观,给玩家提供了一个很好的游戏坏境。关键词:3D游戏;飞机大战;Unity3D;游戏引擎AbstractWiththedevelopmentofthesocietypeoplepaymoreandmoreattentiontoentertainmentlifeoutsideofworkandstudy.Asacommonwayofleisureentertainment,gameshavebecomeanimportantcontentinpeople,slife,andp

3、eople,sdemandsforgamesbecomehigherandhigher.Asakindofnewvisualandsomatosensorygame,3Dgameshavebecomemoreandmorepopula匚Thisgraduationdesignisaimedatsuccessfullydesignedasimple3Dgame-theairwar,onthedemandanalysisontliebasisoffunctionmodulepartition,thenanalyzethevariousmodulesandthedetaileddesign,andu

4、singtheUnity3Dandothertechnologytorealizethewholegame.ThisgamesystemwithUnity3Dgameengineasthedevelopmentandpublishingplatform,c#asaprogramminglanguage,Photoshopaspicturesproductionbase,finallythroughthekeyboardtoachievecontroloftheaircraftmodel.Playerscanthroughthearrowkeystocontrolthemovingofthepl

5、ane,throughtheblankspacekeytocontrolthelaunchofabulletSystemwillberandomlygeneratedsomemeteorites,throughaboutcontroloftheplaneandlaunchthebullettoshootdownthefallingmeteorites.Thegamehassimplestructure,easyoperation,beautifulinterface,aixiprovideplayerswithagoodgameenvironment.Keywords:3DGame;AirWa

6、r;Unity3D;GameEngine目录第1章概述11.1 课题开发背景和研究意义11.2 系统研究内容11.3系统开发工具2第2章系统开发环境和技术32.1Photoshop介绍32.2Unity3D介绍32.3C#语舌5第3章系统的需求分析71. 1可行性研究73. 2需求分析8第4章系统的总体设计94. 1系统功能模块图94. 2游戏界而设计9第5章系统的详细设计与实现145. 1功能模块的设计与实现145.2玩家模块的设计与实现22第6章游戏测试266.1软件测试目的266. 2系统测试过程及结果26结论28参考文献2930致谢第1章概述11课题开发背景和研究意义游戏产业作为一门新

7、兴的娱乐产业,己经在世界范围内得到迅猛的发展。玩家进行游戏时,对游戏视觉和体感的耍求也逐渐提焉,一些比较单i的二维游戏已经不能满足人们对游戏视觉上的需求了。3D游戏作为一种依托丁-新视觉和体感的游戏,得到越来越多的玩家欢迎。三维游戏不仅在视觉上给人们一定的视觉冲击,并且三维游戏向着体感方向发展,使玩家身临其境。世界知名的游戏品牌公司都把自己的游戏制作成逼真的3D游戏,比越来越多的玩家可以感受到身临其境的快乐,3D游戏将主导游戏的发展。虽然现在M而上存在着各种各样的游戏版本,可是E机大战游戏这类小游戏还是很有市场的。这类游戏的优势在丁它们操作简单,上手容易。在当今社会,人们的工作学习BE力逐渐磨

8、大,生活节奏逐渐加快,大多数人都没有足够的时间公休闲娱乐。对丁-这些忙碌的人来说,他们不可能花费大量时间在娱乐上,大型游戏是行不通的。这样的小游戏刚好迎合了这部分人的需求,可以让他们在工作Z余放松一下。本次毕业设计的题H是3D游戏E机大战的设计与实现,旨在成功的设计出一款在电脑上运行的3D小游戏一一飞机人战。游戏的主界而应该力求美观,以提高玩家对游戏的兴趣。游戏的控制模块应该做到简单易懂、易操作,给玩家提供一个很好的游戏环境。mv/illwwill1.2系统研究内容实现一个3D的飞机犬战游戏需要完成以下工作:1、了解和分析用户需求,并根据用户需求设计游戏内容,设定相关场景,包括背景、飞机、陨石

9、、子弹、爆炸特效,具体制定游戏逻辑关系、主要流程、具体任务内容和过关要求。2、使用PhOtOShOPCS3制作游戏背景以及O机、陨石等模型的贴图。3、使用3dsmax等建模I:具建立模型并导入Unity3DLlJo4、通过ViSUaIStUdiO2013来编写脚木,从而实现键盘的控制、随机生成陨石、显示分数等功能。5、对游戏进行详细的系统测试,测试游戏是否能正常运行,对发现的问题进行调试。6、锻后,通过Unity3D将游戏发布出来,生成.exe格式。玩家可以在电脑上启动游戏,从而进行3D游戏飞机大战的体验。13系统开发工具本系统采川以下运行环境和开发工具:1、编程语言:C#2、操作系统:Win

10、dows73、开发工具:Unity3DVisualStudio20134、美工环境:PhotoshopCS3第2章系统开发环境和技术2. 1Photoshop介绍AdobePhOtOShOP,简称“PS”,是美国Adobe公司开发的图像设计及处理软件,以其强大的功能倍受用户的育睐。它是-个集图像扫描、编辑修改、图像制作、广告创意、图像合成、图像输入/输出、网页制作于一体的专业图形处理软件。PhOtOShOP主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进行图片编辑工作叫PhOtOShOP有很多功能,在图像、图形、文字、视频、出版等各方而都有涉及,深受广大平面设计人员利电

11、脑美术爱好者的喜爱。其用户界面易懂、功能完善,、性能稳定,所以几乎在所有的广告、出版、软件公司,PhOtOShOP都是首选的平面工具叫PhOtOShOP广泛用于对图片、照片进行效果制作及对在贯它软件中制作的图片做后期效果加工。从功能上看,PhOtOShoP可分为图像编辑、图像合成、校色调色及特效制作等。1、图像编辑是图像处理的基础,可以对图像做各种变换如放大、缩小、旋转、倾斜、镜像、透视等;也可进行复制、去除斑点、修补、修饰图像的残损等。2、图像合成则是将儿幅图像通过图层操作、工具应用合成完整的、传达明确意义的图像,这是美术设计的必经之路。PhOtOShOP捉供了绘图匚具让外来图像与创意很好地

12、融合。IIwVXIII3、校色调色可方便快捷地对图像的颜色进行明暗、色偏的调整和校正,也可进行不同颜色的切换以满足图像在不同领域如网贝设计、印刷、多媒体等方而应用。4、特效制作在该软件中主要由滤镜、通道及工具综合应用完成。包括图像的特效创意和特效字的制作,如油画、浮雕、石膏画、索描等常用的传统美术技巧都可由Photoshop特效完成。总Z,Photoshop具有平面图彖处理的所有功能,色彩、亮度、尺寸、各种式样、效果、各种滤镜以及通过各种技巧实现的对图像的任意组介、变形,通过层和通道很方便的进行处理,并对结果图形进行优化,输出各种图像格式,目前也能处理动画叫2.2Unity3D介绍Unity3

13、D是由UnityTeChnOlOgieS开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综介型游戏开发工具,是一个全而整合的专业游戏引擎“Unity3D类似J:DirectorBleixlergameengineVirtoolsWtTorqueGameBUilder等利用交互的图型化开发环境为首要方式的软件,其编辑器运彳亍在WindoWS和MacOSX卜,可发布游戏至WindOWs、MacWii、iPhoneWindoWSPhonC8和AndrOid平台。也可以利JLlUnityWebPIayer插件发布网页游戏,支持MaC和WindoWS的网页浏览。

14、它的网页播放器也被Macwidgets所支持UMy3D是一款跨平台的游戏开发工具,从一开始就被设计成易于使用的产品。作为一个完全集成的专业级应用,Unity3D还包含了价值功能强人的游戏引擎。具体的特性包含整合的编辑器、跨平台发布、地形编辑、着色器、脚木、网络、物理、版木控制等特性。Unity3D是一个讣你轻松创作的多平台的游戏开发工具,是一个全面密合的游戏引擎叫Unity3D游戏引擎具有以下特性:1、综合编辑:通过Unity3D简单的用户界面,用户可以完成任何工作。这些为用户节省了大量的时间。在木游戏的编程过程小,可以整体对一个界面进行编辑,节省了;个二个打开每个界面的时间,并且程序可以在界

15、面中共享,节约了人最的相同程序重复编辑使用的时间,提高了整体的效率。2、资源导入:Unity3D支持所有主要文件格式,并能和大部分和关应用程序协同工作。木游戏的图片可以尽数导入Uni(y3D中进行编辑,同时可以大量导入游戏所需要的声音特效,在Unity3D中对声音进行编辑。对于游戏的整体实现十分有利。3、7键部署:Unity3D可以让我们的作品在多平台呈现。利用FiIe选项中的BuildSetting功能,可以选择将游戏发布到多个平台上,可供选择的方案十分齐全,完成的作品可以发布到WindoWS平台,或者Android,10S平台等,对于本次毕业设计的耍求分布到移动平台上,Unity3D更是可

16、以完全的满足需求。4、音频和视频:实时三维图形混合音频流、视频流。在本游戏中,我们在主界而内添加声音控件,为了达到使游戏更加具有真实感的效杲。5、脚木:Unity3D支持很多的脚本语言,木次游戏的设计,编程主要使用到的为C#语言,Unity3D对于C#语言的支持使得程序的制作者可以尽可能的完成所需要的功能和设计的实现。6、Unity3D资源服务器:Unity3D资源服务器是一个附加的包插版本控制的产品。使得对于场景的切换更加快捷。7、全屏后处理效果:uni【y3D拥有大量的全屏后处理特效图片去创建,例如阳光、镜头效果、色彩丰富的光学效果、色彩校正甚至更多。8、重写渲染引擎:在Unity3D改写

17、了金部的演染终端,更加的灵活,渲染的速度也得到了人人提高叫2.3C#语言C#是微软公司发布的-种面向对象的、运行于.NETFramework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上野台亮相。C#是微软公司研究员AnderSHejlSberg的最新成果。C#看起来与JaVa有着惊人的相似;它包括了诸如单一继承、接口、与JaVa儿乎同样的语法和编译成中间代码再运行的过程。但是C#与JaVa有着明显的不同,它借鉴了DeIPhi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NETwindows网络框架的主角。C#是一种安全的、稳定的、简单的、优雅的,由C和C

18、+衍生出来的面向对彖的编程语言。它在继承C和C强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C+的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言叭C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT.NET平台的应用程序,MlCRoSoFT.NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。C#使得CH程序员可以高效的开发程序,且因可调用由CCH编写的木机氐生函数,因此绝不损失C/C-H-原有的强大的功能。因为这种继承关系,C#

19、与C/C+具有极大的和似性,熟悉类似语言的开发者可以很快的转向C#砒C#旨在设计成为一种“简单-、现代、通用”以及面向文寸彖的程序设计语言,此种语言的实现,应提供对于以下软件工程要索的支持:强类型检查、数组维度检杳、未初始化的变量引用检测、门动垃圾收集(GarbageCOneCtiOn,指种I动内存释放技术)。软件必须做到强大、持久,并具有较强的编程生产力。此种语言为在分布式环境中的开发提供适用的组件开发应用。为使程序员容易迁移到这种语言,源代码的可移植性十分重要,尤其是对于那些已熟悉C和C的程序员而言。对国际化的支持非常重要。C#适合为独立和诙入式的系统编写程序,从使用复杂操作系统的大型系统

20、到特定应用的小型系统均适用叫C#所开发的程序源代码并不是编译成能够直接在操作系统上执行的二迹制木地代码。与JaVa类似,它被编译成为小间代码,然后通过.NetFramework的虚拟机被称Z为通用语言运行时(CLR)执行。所有的.Net编程语言都被编译成这种被称为MSlL(MicrosoftIntermediateLanguage)的中间代码。因此虽然最终的程序在农面上仍然与传统意义上的可执行文件都具有“exe”的后缀名。但是实际上,如果计算机上没有安装.NetFramework,那么这些程序将不能够被执行。在程序执行时,.NetFramework将LlJ间代码翻译成为二进制机器码,从而使它得

21、到正确的运行。最终的二进制代码被存储在一个缓冲区中。所以一旦程序使用了相同的代码,那么将会调用缓冲区中的版本。这样如杲一个.Net程序第二次被运行,那么这种翻译不需要进行第二次,速度明显加快。C#儿乎集中了所有关于软件开发和软件工程研究的最新成果:而向对彖、类型安全、组件技术、动内存管理、跨平台异常处理、版木控制、代码安全管理尽管像很多人注意到的-样,罗列上述特性时,总是比人想到JAVA,然而C#确实走得更远叭但现实的情况是,非技术的因索往往更能决定一个产品的未来,尤其在计算机软件的历史上,技术卓越的产品,如OS/2、Mac0SUNlX等,都败在了WindOWS漂亮的界而oJAVA的用户主耍是

22、网络服务的开发者和嵌入式设备软件的开发者,嵌入式设备软件不是C#的用武之地,而在网络服务方面,C#的即时编译和本地代码CaChe方案比JAVA虚拟机具有绝对的性能优势。第3章系统的需求分析3.1 可行性研究可行性研究的目的就是用最小的成木在尽可能短的时间内确定问题定义阶段描述的系统目标和规模是否可行,是否能够解决。也就是说,可行性研究的H的不是解决问题,而是确定问题是否值得去解决,研究在当前的具体条件下,开发新系统是否具备必要的资源和其它条件呦。一般来说,至少耍从以下几个方面来进行分析:1、经济可行性这个系统的经济效益能超过它的开发成本吗?2、技术可行性使用现有的技术能实现这个系统吗?3、操作

23、可行性系统的操作方式在这个用户组织内行得通吗?现在分别从经济可行性、技术可行性、操作可行性三个方面对本游戏系统进行研究。3.1.1 经济可行性般衡量经济上是否合算,应考虑一个“底线”,经济可行性研究范囤较广,包括成本效益分析,开发所需的资金和资源,潜在的市场发展的前呆等。本系统的开发是在电脑上进行的,其测试工作也可以在电脑上模拟网络环境来进行。从短期来看,系统的开发所盂的费用是很少的。同时,游戏一旦上线运行,会给用户带来更加精彩的游戏体验,用八可以在PC端进行游戏体验,也町以在科能手机端进行游戏体验。因此,从经济上具有可行性。3.1.2 技术可行性3D游戏开发是基于Unity3D游戏引孥,主要

24、包括前期模型的制作以及后期游戏场景程序的开发。本系统拟采用Photoshop.Unity3D和C#分别作为前期和后期的开发工具。PhOtoShOP是Adobe公司出品的最为出名的图像处理软件之/一,充分利用无与伦比的编辑合成功能来大幅度提高工作效率。采用PhOtoShOP可以使图片的编辑更加完美。Unity是一款跨平台的游戏开发工具,是一个全面整合的专业游戏引擎。Unity口J以发布到多个平台,支持WindoWs、Mac、IPhoneAndroid等平台。C#是面向对彖的编程语言。它使得程序员可以快速地编写各种基于.NET平台的应用程序,NET提供了一系列的工具和服务来最人程度地开发利用在计算

25、与通讯领域。这些技术已经比较成熟,因此从技术方面来说开发此系统是町行的。313操作可行性本系统是一个3D游戏飞机大战,是Unity3D技术应用于游戏中的产物。本游戏交互性好,简单易操作,对用户并没有特殊的要求。一般用户经过儿分钟练习就可以掌握游戏规则,在操作上十分方便。所以在操作方而来说开发此系统是可行的。3.2需求分析3.2.1 功能需求根据对游戏功能需求的仔细分析,对本游戏提出如下要求:1、玩家进入游戏开始菜单可以选择开始游戏、退出游戏;2、进入游戏界面后可退出游戏;3、玩家飞机以一定速度飞行,用户可以控制飞机上卜左右移动;4、玩家E机一直发射子弹,用户通过操控飞机位置来扫射陨石;5、不同

26、种类陨石会以一定速度随机出现:6、玩家飞机发射的子弹击中陨石后,陨石爆炸销毁,了弹击中陨石后消失;7、玩家飞机若与陨石相撷,玩家飞机则於毁,游戏失败;8、玩家飞机游戏失败后失败界面会显示用户达到的分数,川户可以选择重新游戏。3.2.2性能需求1、实时性:木游戏为电脑游戏因此对于用户的操作必须做出立即响应,否则本游戏即为失败;2、易操作性:木游戏的最大特点即为易操作性,玩家在不看说明的情况下也能够玩,并且在玩过几遍Z后即熟悉本游戏的规则。这是木游戏对于操作性的婆求。3. 2.3美工音效需求1、游戏画而风格清新,活泼可爱;2、玩家点击按钮后,按钮耍发生变化,在视觉上提醒用户已成功点击按钮;3、玩家

27、点击按钮时进入游戏界面,在听觉上提醒用户己成功进入游戏小;4、玩家E机发射子弹、发生碰撞坠毁都有音效;5、陨石被玩家子弹炸毁时要有音效,玩家使用炸弹时要有音效。第4章系统的总体设计4.1 系统功能模块图木游戏系统分为游戏功能模块和玩家模块两大部分。1、游戏功能模块。在游戏界面中要有很多的陨石阻挡飞机的飞行,所以游戏功能模块包括陨石产生并且口动下落、飞机击落陨石产生爆炸、飞机被陨石砸到飞机坠毁、子禅射击时播放背景音效、击中陨石累计分数等功能。2、玩家模块。玩家可以控制键盘来控制飞机的飞行,用键盘空格键来控制子弹的发射。根据游戏功能分析,可以画出包含游戏功能模块和玩家模块的系统功能模块图,如图41

28、所示。3D游戏飞机大战玩家模块功能模块图4-1系统功能模块图4.2游戏界面设计使用PhOtOShOP对游戏的背景进行制作,因为飞机是三维立体的,需要把图片按照平面给取下来,就需要PhOtOShOP来完成,为了使游戏的效果更加炫H,需要把背景图片设计成太空的感觉,同时需要借助PhOtoShop。游戏的开始的游戏界面如图42所。图4-2游戏界面图4.3模型设计和构建三维模型在游戏中占据着重耍作用,模型的好坏宜接影响运行的效果和游戏的逼真度。模型的构建可以使用专业的建模工具。本飞机人战游戏中的飞机模型采用3DSMAX进行建模,用它建立的模型有很强的仿真立体效果。3DSMAX提供了高级的三维建模指令,

29、它丰富的建模技术能够较为方便和克实地表现复杂、精细的模型,它在工业产品设计、数字化技术、仿真系统等诸领域中得到广泛的应川。3DSMAX建立模型的过程主要是:1、收集相关的资料并整理数据。资料尽量齐全、统一、规划。2、定好计划,计划模型制作与贴图的时间分配、模型的布局等。3、模型制作。按照收集到的数据准确建模,在局部进行精简、优化。4、映射纹理。按照需耍处理纹理,并进行纹理映射。5、合成。按照要求把局部模型进行合成,并调整灯光、材质。6、调整、优化。查看实际渲染效果,针对个别情况进行调整,并进行优化。7、获得模型成果。根据对飞机结构的分析,逐层逐块地利用建模软件3DSMAX提供的点、线、面、体创

30、建和修改工具,进行几何模型的创建。对于需要精细建模的模型要用尽量使用精确的儿何形体创建模型细节,对于耍粗略建模的模型耍尽量使用而数较少的几何体构建。这时创建的模型还只是一个未加任何修饰的模型,这个过程完成了几何建模的工作,但是并没有层次感和立体感。如图43所示为飞机的几何模型。图4-3飞机的几何模型为了提离二维模型的逼真度,减少模型的多边形数量,我们采用纹理贴制的方法来代替用多边形表示模型的细节,从而大大降低了模型的多边形数量。飞机的纹理贴图是由Photoshop处理得到的,如图44所示。图4*-4飞机林纹理岫图,为制作好的飞机儿何模型进行贴图,最终的飞机模型制作完成,如图4-5所示。图4-5

31、飞机模型图游戏中还有瞅落的陨石,陨右的制作和飞机模型的制作是相同的。需要进行陨石儿何模型的制作,然后进行陨石的贴图制作。最终的陨石模型图如图46所示。图4-6陨石模型图第5章系统的详细设计与实现3D游戏飞机人战包括游戏功能模块和玩家模块两人部分。游戏功能模块部分,H的是实现游戏的各种效果,而玩家模块则是实现对游戏的控制操作。下面对3D游戏飞机大战各个功能的实现做个简单的介绍。5.1 功能模块的设计与实现5.1.1 开始游戏模块的设计与实现玩家可以在游戏的上界面点击NeWGame进入游戏界面,点击QUit退出游戏。该模块使用了UGUl技术和动画特效来实现对游戏主界面的操作,游戏开始主界面如图5-

32、1所示。图5-1游戏开始主界面图在点击NewGame后在场景小需耍切换游戏场景界帕在设置小需添加SpaceSlioOterGame.unity从而切换游戏的界面,切换场景界面图如图5-2所示。ScenesInBuildPScerieiZWidgeU.unit?JSPaCeShoGtefGame.unityAddCUnentPlatfonnindows StorePC, Mac & nu?TpPCMac&Linu:StandaloneTargetPhtformArchitertureDevelopmentBuildindows Phone 8kutonnectPtafileicriptDebug

33、ging;UiIdAndPUn图5-2切换场景界面图切换场景主要的实现代码如下:publicvoidChange()(AppIicationLoadLeve1(nSpaceShooteiCiame);结束游戏宅耍实现的代码如下:publicvoidQuit()# ifUNITYEDITORUnit yEd itor. Ed itor App Iica t io n. isP ki y ing = false;#CkCApplication.Quit();#endif5.1.2陨石下落模块的实现该模块实现的是陨石的下落,将陨石设为预设体,再将预设体设为刚体,陨石为 刚体受向下的力向下运动。将陨石

34、预设体添加脚本RandOmROatCr和MOVerBOUnl随机产生 陨石下落的位置。陨石下落时子弹可以射击,击中发射爆炸,从而得打分数。如果陨石 撞到了飞机上,玩家游戏停止。陨石下落控件如图53所示。TPositron IR OtatiOnormX .-453985Q Deatrfoy i Contcact (cr*in)ScriptD 0 o y 8 y CZ a nto ctE plosionplosion-astcs* oidPlayer Ex plosion GormeScore ploiwn_plAr None IORiQidUodIyOreiQAngulii Oraq Use O

35、r ai a/itv 1 K memetic Interpolate CaIHsiorr Detection ConstiOlllrlervts TriQQr Mare ri a I Center edius HeightDir ectioc7 RaxIo Sori pt ThumbteIlan w DkacietetAs Edit Collidei SZNone PK vaic Matein-nl JXQVQ Sc r-ipt: I 9Q J rtndomR图5-3陨石控件界面陨石卜落主耍的实现代码如下:publicclassMoverBount:MonoBehaviourpublicflo

36、atspeed=10.0f;publicfloatthumble=5;voidStart()(rigidbody,velocity=transfbright*speed;rigidbody.angularVclocity=RandomJnsideUnitSphere*thumble;)陨石旋转卞耍的实现代码如下:publicclassRandomRoater:MonoBehaviourpublicfloatthumble=5;voidStart()5.1.3陨石爆炸模块的实现rigidbody.angularVclocity-RandomjnsideUnitSphere*thumble;当玩家

37、通过键盘控制子弹击落陨右的时候,陨右发生爆炸。撞击陨右发生爆炸,陨石需要添加脚DeStrc)yByContact,为了可以使陨石在爆炸后自动消失。消失一个陨石得到的分数为10分。陨石爆炸模块如图54所示。eplosiohNone(GameController陨石爆炸主耍的实现代码如F:图5-4陨石爆炸模块publicclassDestroyByContact:MomBehaviourpublicGameObjectexplosion;publicGameObjectplayerExplosion;publicGamcControllcrgame;publicintscore=10;voidSt

38、art()Iler m);GameObjectgameControllerObject=GameObject-FindGameObjectWithTag(HGameControif(gameControllerObject!=null)game=gameControllcrObjcct.GetComponcnt();)if(gameControllerObject=null)DebugXogC错误”);voidOnTriggerEnter(Col1iderother)if(other.gamcbjcct.tag=Boundary)return;if(othcr.gamcbjcct.tag=,P

39、layer)InstantiatecplayerExplosioatrattsldmipositioatransidmirotation);game.GameOver();Destroy(otheFgameObjecI);Destroy(this.gamebject);gamc.AddScorc(score);Instantiate(expIosion,transiomiposition,Iransiomirotation);514游戏结束模块的实现当陨石击中飞机的时候,飞机发生爆炸,从而游戏结束,点击R重新开始游戏。7 GurrextTe xtEOdGame Overt飞机击落模块如图55所

40、示。AnchorAIignment PiM el Offset Line- Spcina Tab Siz Font Material Farit Size Fant Sty l* ColorPinet Correct R ich TextK-Iiddle eenterAV7ITiEBr”XQYO下:图5-5飞机击落模式游戏结束的主要实现代码如None (Material)!Enumerator spawnWavcs()%AMA#CCCINyieldreturnnewWaitForSeconds(StartWait);while(te)(tdr(int=0;iNumPerWave;i+)(spa

41、wn();yieldreturnnewWaitForSeconds(spawnWait);IyieldreturnnewWaitForSeconds(waveWait);if(gameover),游戏结束,停止继续产生小行星break;游戏重新开始实现的代码如F:publicvoidGamever()(gameover=true;gameoverText.text=MGameOveru;hclpTcxt.tcxt=uprcssRtoStart1*;5.1.5 背景音效模块的实现进入游戏之后产生背景音乐,子弹射击的时候伴有音乐音效,陨石击落的时候也伴有音乐音效。首先需耍在场景中添加AUdiOSo

42、UrCe组件,组件设置所需要的音效。场景中音乐音效模块图如图5-6所示。7AudioSourceE6AudioPrMone(AudioClip)MuterBypassEffects8ypassListenerEflBypassReverbZonPlayOnAwnkeLoopPrioritytm1a0VolumertPitchi30SoundSettingsDopplerLevel1VolumeRolloffLaJirirbrnicAnHnArblinDistance1P也订LevelJ1Spread-0MaxDistance500i:图5-6音乐音效模块图5.1.6 分数累计模块的实现玩家通过

43、键盘控制发射子弹射击陨石,若子弹打中陨石,玩家得分,与此同时将得到的分数记录在分数框中。分数累计模块如图5.7所示。SA/GUITewtTextAnchoiAlignmuntPixelOffsetUneSpcino6UPP.ar1匚忙Color/PixelCatIectPichText图5-7分数累计模块图主要实现代码如下:voidspawn()GameObjecto=hazardsRandom.Range(0,hazards.Length);Vcctor3p=newVcctor3(spawnValucs.x,spawnValucs.y,RandomRange(-spavvnValues.As

44、pawnValues./);Quaternionq=Quaternionidentity;Instantiate(o,p,q);)publicvoidAddScore(intv)score+=v;guiText.text=Hscore:H+score;517粒子特效的实现为了使游戏的效果更加的绚丽,就要给场景添加粒子特效,在GamCobjCC冲添加ParticleSystem组件,粒子特效的主界面模块如图所示。ROrAtiCIeSC:Parric1eSys0nviOpnHdtririiu6rnDurArianS.00LopInyPwJirmStarrLiferjmeSt:jirt:StnaadI55StArtn:34210-5StarxRurtJonOSt:art-0n攵aOL505EmisstanJShap7UodaoaUrfernm7UenderAr5Resit-nU1te-Wneframe图5-8粒子特效模块图5.2玩家模块的设计与实现5.2.1 发射子弹的实现玩家进入游戏主界面点击进入游戏,通过点击键盘的空格键发射子弹射击落下的陨石,发射子弹模块如图5-9所示。fit I C I1工,,iR OtationO二 OX 1YXN 14*lQldolyE O,M* *XDcjOAnqugr DraO .OS

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

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号