《基于U3D的坦克大战游戏的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于U3D的坦克大战游戏的设计与实现.doc(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于U3D的坦克大战游戏的设计与实现摘要:当今社会的科技水平和经济水平在迅速发展着,游戏行业也以惊人的速度发展着。现在的游戏行业可以说已经占据了整个经济市场举足轻重的位置,同时也直接催生了电子竞技的诞生。电子游戏便成了人们休闲生活的又一重要方式。虽然每年出现的游戏作品有很多,但足够优秀强大的游戏作品却很稀缺。而Unity3D这款游戏引擎十分强大,只要有很好创意自己做一个游戏也是完全有可能的,所以学好这款软件也有重要的意义程彬彬,王明鑫,商楠.浅谈游戏开发平台Unity3D的应用与发展前景J.通讯世界,2016(14):236.。在如今科技发达的社会下,自己动手做一个自己喜爱的游戏已经不是遥不可
2、及的一个梦了。通过这次设计设计一个2D的坦克大战游戏来对Unity3D有一个基本且全面的认识,在认识到Unity3D这款游戏引擎的强大之处的同时,还可以大开脑洞让自己亲自动手开发一款特别的游戏。Unity3D支持多个平台的移植,也可以方便导入各方面的插件,同时在程序移植的问题上也不会有很大的问题。此次坦克大战游戏主要分为UI设计、物理仿真、脚本控制等模块亚当斯.游戏设计基础M.北京:机械工业出版社,2009.。UI设计需要先完成各种所需材料的建模模型,可以直接导入在外面画好的模型文件,直接拖动操作即可完成导入,在整个设计中基本都是可以通过拖动操作实时完成画面设计,这种方式极大提高了开发效率,同
3、时设计过程中也非常直观地看到自己的进程马晓萍,刘静.基于Unity3D的坦克大战游戏设计与实现J.数字技术与应用,2017(06):168+171。物理仿真需要考虑物体之间的穿模问题和子弹碰撞问题,需要为各个模型添加一个碰撞器,需要使用Box ColliDer 2D的插件吴亚峰于复兴.Unity3D游戏开发技术详解与典型案例M.北京:人民邮电出版社,2012.。同时也需要在经常移动的模型上加上刚体,需要使用Rigidbody 2D的插件,这样才能触发碰撞效果。脚本控制使用C#的编程语言,C#由C和C+衍生出来的面向对象的编程语言,它安全,稳定,简单,它在继承C和C+强大的功能的同时去掉了一些它
4、们复杂的特性,所以也极大提高了开发者的脚本编程速度李兰友 杨晓光.Visual C#.NET程序设计M.北京:清华大学出版社,2004.5.。目前我所使用的Unity3D的版本是2019.2.17f1 (64-bit)。坦克大战的实现将为其他有这方面意向的人打开新世界的大门,让他们也可以了解到这款游戏引擎的强大之处的同时也可以引发自己动手作游戏的念头,虽然这只是一款小游戏,但涉及的技术点也较为广泛,在可以引新手入门的同时也可以为有同样的问题提供参考。关键词:Unity3D,C#,游戏引擎,坦克大战游戏Design and implementation of tank battle game b
5、ased on U3DAbstract:Nowadays, the level of technology and economy is developing rapidly, and the game industry is developing at an amazing speed. Now the game industry can be said to have occupied a pivotal position in the whole economic market, and also directly gave birth to the birth of E-sports.
6、 Video games have become another important way of peoples leisure life. Although there are many game works appearing every year, there are few excellent ones. And unity3d is a very powerful game engine. Its possible to make a game by yourself as long as you have good ideas. So its also of great sign
7、ificance to learn this software well.In todays technologically advanced society, its not an unreachable dream to make a favorite game by yourself. Through this design and design of a 2D tank war game, we can have a basic and comprehensive understanding of unity3d. While recognizing the power of unit
8、y3d game engine, we can also open a big brain hole to develop a special game by ourselves. Unity3d supports the migration of multiple platforms, and it is also convenient to import various plug-ins. At the same time, there is no big problem in the migration of programs. The tank war game is mainly d
9、ivided into UI design, physical simulation, script control and other modules. The UI design needs to complete the modeling model of various materials first, which can be directly imported into the model file drawn outside, and can be directly imported by dragging operation. In the whole design, it c
10、an basically complete the real-time picture design by dragging operation, which greatly improves the development efficiency, and at the same time, it can also see its own process very intuitively. Physical simulation needs to consider the problem of model piercing and bullet collision between object
11、s. It needs to add a collider for each model and use Box collider 2D plug-in. At the same time, we need to add rigid bodies to the model that often moves. We need to use the plug-in of Rigidbody 2D to trigger the collision effect. Script control uses C programming language. C is an object-oriented p
12、rogramming language derived from C and C + +, which is safe, stable and simple. It inherits the powerful functions of C and C + +, and removes some of their complex features, so it also greatly improves the script programming speed of developers. The current version of unity3d I use is 2019.2.17f1 (
13、64 bit).The realization of tank war will open the door of the new world for other people with this intention, so that they can also understand the power of this game engine and trigger the idea of making games by themselves. Although this is only a small game, it involves a wide range of technical p
14、oints, which can guide novices to the same problems as well as provide references.Keywords: Unity3D,C#,Game engine,Tank battle game目 录第1章 绪 论11.1游戏的开发背景及意义11.2国内外研究现状21.3游戏的主要研究内容31.4游戏开发环境与开发工具4第2章 游戏需求分析62.1可行性分析62.1.1经济可行性62.1.2技术可行性62.1.3操作可行性62.2游戏的总体需求62.3游戏的业务需求72.4游戏功能的需求分析82.4.1坦克大战游戏功能分析82
15、.5 UML系统建模92.5.1用例图92.5.2用例图规约表102.6本章小结13第3章 游戏设计143.1游戏主菜单界面143.1.1游戏主菜单界面的设计143.2游戏界面163.2.1游戏素材的导入,处理和场景的搭建163.2.2玩家坦克的设计183.2.3敌方坦克的设计233.2.4初始化地图253.2.5添加音效283.3游戏帮助界面293.4实现界面跳转303.5 本章小结30第4章 游戏总体实现314.1 游戏主菜单界面的实现314.2 游戏界面的实现314.3 游戏帮助界面的实现334.4本章小结34第5章 游戏测试355.1 游戏测试的目的355.2 游戏测试的意义355.3
16、 测试用例及结果355.4 本章小结37第6章 结束语386.1 全文总结386.2 课题展望38参考文献39致 谢41第1章 绪 论1.1游戏的开发背景及意义近几年来,全世界的经济水平的正在快速发展,同样的科技水平也不甘落后,也使得游戏行业也正在不断地蓬勃发展。现在的游戏行业和电影行业可以说已经同等重要了,人们的生活中到处充斥着各种游戏用语的声音,无论是手游还是端游又或者网游都有着大量的玩家,这成了人们休闲生活的又一重要方式。特别是游戏开发技术的进步使得现在大部分游戏作品画面越来越精美,游戏本身的趣味性也越来越高了,现在的优秀作品的游戏已经是人们的日常生活消遣娱乐的不二选择。在2019年,中
17、国游戏产业取得了一个令人骄傲的成绩。2019年中在海南海口召开的2019中国游戏产业年会上,中国音像与数字出版协会游戏出版工作委员会发布的2019年中国游戏产业报告中国音像与数字出版协会游戏出版工作委员.2019年中国游戏产业报告R.2019.(以下简称报告)显示,2019年,中国游戏产业实际营销收入为2308.8亿元,同比增长7.7%;其中自主研发游戏的营销收入为1895.1亿元,同比增长15.3%;国产游戏“走出去”继续保持较快增长,海外市场营销收入为115.9亿美元,同比增长21%,报告显示,国内游戏企业通过深耕自主研发,探索新的发展模式和途径取得较快增长。2019年,中国自主研发游戏在
18、国内市场实际销售收入已达到1895.1亿元,同比增加251.2亿元,增长率15.3%。中国自主研发游戏海外市场实际销售收入115.9亿美元,同比增长21%,增速高于国内市场。在海外市场实际销售收入地区分布中,美国的收入占比达到30.9%,日本的收入占比达到22.4%,韩国收入占比为14.3%,3个地区合计占比达到67.6%,数据表明,美国已成为中国游戏企业出海的重要目标市场。经济市场中增长速度最快的产业已经是非游戏产业莫属了,游戏产业在现在已经成为了人们关注的热点。其中游戏是属于文化创意产业的其中一员,而创意经济又是知识经济的核心所在,更是其经济的重要表现形式,如果没有创意,那么也将就没有新经
19、济。游戏设计是文化艺术创意和商品生产的结合,游戏产业的发展在中国的经济发展具有十分重要的意义孙煦东. 游戏改变教育?N. 中国教师报,2015-03-04(003).:1.有助于保护中华民族的传统文化和传统的价值观,以防文化侵蚀;2.使得创意产业能高速发展,大大提高我国经济领域的发展速度;3.提供趣味性高质量好的大众娱乐方式,极大提升消费者的休闲体验感受。在科学技术如此发达的今天,游戏引擎受到的关注也持续高涨,目前主要的引擎有BigWorld引擎、UnrealEngine3虚幻引擎、Gamebryo引擎、Unity3D引擎,Unity3D是最近几年才流行起来,但它由于完美的跨平台系统使他迅速的
20、在引擎市场占据了重要的地位曲鹏翔.游戏引擎在游戏开发中的应用分析J.卫星电视与宽带多媒体,2019(23):16+18.。通过这次毕业设计在这里将介绍一款以Unity3D为开发平台,以C#为主要开发语言的坦克大战游戏。在早些年间,坦克大战游戏是一款曾经非常受欢迎的电视游戏机和掌上游戏机的游戏,在我的童年记忆里,我也时常用着小霸王牌的电视游戏机和我的小伙伴们一起玩这款游戏,它虽然表面看起来很简单,但却能让我们玩的不亦乐乎,令人着魔。如今回看过去,坦克大战最早还是出现在FC机上,它游戏规则简单,容易上手,使用户能感受到该游戏带来的乐趣,该游戏在保证运行效果的同时,具有设备要求低,跨平台性能好,运行
21、流畅稳定的特点马晓萍,刘静.基于Unity3D的坦克大战游戏设计与实现J.数字技术与应用,2017(06):168+171.。这次的设计以一个简单的坦克大战游戏为例,并且加以实现,在这个过程中里面涵盖了Unity3D涉及到的一些基本技术,能基本了解这个领域的底层技术并熟练掌握Unity3D游戏引擎的使用。1.2国内外研究现状在早些年间Unity3D的创始人最先开始的是在2004年创立的是一个叫Over the Edge Entertainment的公司,后来他在Mac上开发了一款名叫GooBall的游戏之后,他们便知道到了他们所用到的工具所隐藏的巨大价值,所以在2005年他们开始转向做游戏引擎
22、,这样Unity1.0就诞生了。他们是在 Apple Inc.s Worldwide Developers Conference的大会上第一次发表的,是作为Mac端的扩展工具Unity发布,随后的Unity就开始支持在Windows平台使用了。Unity3D的各版本的发布日志可以看出,他们每个版本都做了哪些更新,新添了哪些功能等,其实通过它们的更新日志可以看出来最初期那些版本都是一个非常低端的东西。也可以看出来他们前期的调试和各种API的改变,所以并不见得比两年前的战火引擎强大,但到了2006年的时候,由于技术的不断成熟他们荣获了Apple Design Awards的Best Use of
23、Mac OS X Graphics奖项。此时的他们还是个PC游戏的开发工具。就在2007年,iphone第一代发布了!此时放眼望去,居然只有Unity支持iphone,随后的一段长的时间里,在那个时候开发iOS游戏的工具只有也仅有是Unity。2008年,Unity3D的公司名称正式更名为Unity Technologies,之后Unity3D被广泛应用着宣雨松.Unity3D游戏开发M.北京:人民邮电出版社,2012.。时至今日,虽然国内的很多游戏公司都已经加深了对游戏引擎的了解,但是如果一些中小公司要自主开发一款游戏的话,开发过程也将会十分困难,而且得到的经济收益也不高,所以,我国的互联网
24、公司能拥有由自家研发的游戏引擎简直少得可怜,大部分公司还是继续使用着外国优秀的游戏引擎。虽然这两年来国内还是会有一些比较优秀的游戏作品出现,但如果和国外的游戏大作相比较,还是会有一定的距离。而现在国内很大一部分的游戏公司还是以代理国外优秀游戏为主,也从而导致了资金外流,不仅如此,我国优秀的本土传统文化也会慢慢的缺失。随着移动硬件设备的日益强大,移动平台上的游戏也出现了惊人的增长。而移动领域存在诸多系统,常用的有Android,Windows Mobile,iOS等,而在各个平台上的移植和实现对于开发商来说是不经济的,然而目前国外优秀的成熟引擎已经成功的解决了这类问题,其中Unity3D在众多游
25、戏引擎中最突出,Unity3D中使用虚拟机技术使游戏编译结果独立于平台执行Lam Wing Man Wynne,Liu Xingyi. Does data portability facilitate entry?J. International Journal of Industrial Organization,2020,69(C).。因此如果有人有做游戏开发这方面工作的意向的,或者只想单纯想自己做游戏来玩的,来熟练理解和掌握这些引擎的使用也会有十分大的好处。1.3游戏的主要研究内容本次游戏设计主要分为游戏主菜单界面、游戏界面和游戏帮助界面这三大界面组成。游戏设计开始之前也需要先准备好游戏
26、所需要用到的的素材,比如坦克模型,障碍物,子弹的模型,各种图片的设计和游戏里的各种音效等。游戏主菜单界面:是游戏最开始进入的界面,打开游戏成功后,可以在此界面选择游戏的模式,其中有单人模式,自己一个为主角来进行游戏,同时可以选择双人模式,两个人可以操控各自坦克来进行游戏。同时也可以选择游戏帮助来快速了解本游戏的玩法。游戏界面:是游戏的主界面,玩家在这个界面进行游戏,这里包含关于敌人包括的AI的编写,敌人的随机出生地方,敌人中弹判断等。还有主角的控制逻辑的编写,主角出生地,主角中弹判断和大本营中弹判断等。游戏帮助界面:显示文本介绍本游戏的基本玩法,游戏的基本规则说明,单人模式的主角控制按键和双人
27、模式的双主角控制按键的说明等。1.4游戏开发环境与开发工具本次设计基本在Unity3D上进行开发,Unity3D是一个可以让任何人实现制作游戏的梦想的开发工具,开发出来的游戏也能运行在PC、Mac OS、PS3、XBox360、Wii、IOS、Android等平台,另外也可以利用Unity Web player插件来发布网页游戏,以及支持开发线上游戏,是一个比较全面整合的专业游戏引擎Yucong Pan. Design and Development of Card Games Based on Unity 3DC. Institute of Management Science and In
28、dustrial Engineering.Proceedings of 2019 2nd International Conference on Mechanical Engineering,Industrial Materials and Industrial Electronics(MEIMIE 2019).Institute of Management Science and Industrial Engineering。Unity3D提供了简单容易看懂的操作界面,可以使开发者一边开发一边通过界面实时看到自己目前制作的结果。而且也支持PhysX物理引擎、粒子系统等,降低了开发者游戏开发的
29、知识需求,减少了游戏开发所需的时间和制作成本R. Andaru, B. K. Cahyono, G. Riyadi, et al. THE COMBINATION OF TERRESTRIAL LIDAR AND UAV PHOTOGRAMMETRY FOR INTERACTIVE ARCHITECTURAL HERITAGE VISUALIZATION USING UNITY 3D GAME ENGINE. 2019, XLII-2/W17:39-44.。编写脚本全程用C#语言即可,而我这次的设计所用到的编译软件是用Microsoft Visual Studio2012,虽然版本比较低,但影
30、响并不会很大。其中Unity3D软件有以下几点特点Xiaoling Shu. Design and Research of Virtual Experiment System for Network Attack and Defense Based on Unity3DC. Information Engineering Research Institute,USA、Asia Pacific Human-Computer Interaction Research Center,Hong Kong.Proceedings of 2018 4th International Conference
31、on Mechatronic Systems and Materials Application(ICMSMA 2018).Information Engineering Research Institute,USA、Asia Pacific Human-Computer Interaction Research Center,Hong Kong:资源导入:Unity支持所有主要文件格式,并能和大部分相关应用程序协同工作。综合编辑:在游戏的开发过程中,可以整体对每一个界面进行编辑,节约了一个个打开每个界面的时间,并且程序可以在界面中共享,提高了整体的效率。平台发布多样性:Unity可以在多个平
32、台上展现自己的作品,利用Build Setting功能,可以选择不同的平台发布自己的作品。音效和视频:实时三维图形混合音频流和视频流。脚本:Unity支持3种脚本语言,其中有JavaScript,C#,Boo。而这次的坦克游戏的脚本主要用C#语言。Unity hub:Unity hub是一个包含了大部分Unity3D各种版本的下载器。拖动操作:Unity3D软件中大部分的操作都可用拖动操作来实现,开发效率能大大提高。第2章 游戏需求分析2.1可行性分析2.1.1经济可行性基于U3D坦克大战的设计与实现是本人的毕业设计,从整个系统的设计到开发都由本人自己完成,本人在开发的过程不需要付费服务,Un
33、ity3D这款软件也是免费开放给学习者免费学习,完全实现了零经费输出。在整个游戏开发完成并使用之后,玩家也可以直接下载程序包直接开始进行游戏,而游戏无论是下载游戏前还是下载游戏后,都不需要花费玩家一分钱,可以直接打开游戏就可以直接全程免费体验。2.1.2技术可行性该游戏为本人的毕业设计,而本人已基本了解程序开发流程和U3D的基本用法,已经具备开发一个难度不大的游戏的技术。此游戏使用的开发工具为Unity3D,大部分操作将在该软件上完成。另外需要采用C#语言编写脚本,而编译工具为Microsoft Visual Studio 2012。2.1.3操作可行性在U3D上开发的程序可以直接window
34、s系统下打开,里面简明整洁的UI、易于操作的方式和无限的娱乐性是U3D坦克大战的优点。不管玩家曾经是否有接触过其他游戏的经历,完全上手这款游戏也完全不是问题。由此可见,操作方式和操作过程不会限制U3D坦克大战游戏。2.2游戏的总体需求这款坦克大战游戏是需要有三个界面:游戏主菜单界面、游戏界面和游戏帮助界面。游戏主菜单界面是玩家最开始所在的一个界面,可以让玩家选择开始游戏或者查看游戏帮助。游戏界面是玩家开始游戏后的界面,以供玩家在这个界面游戏,这里需要有地图,玩家坦克和敌方坦克,还有需要添加各种脚本用以实现游戏。游戏帮助界面是为了让玩家可以对这款游戏有一给详细的了解,使玩家能快速上手这款游戏。2
35、.3游戏的业务需求以下是对坦克大战游戏的整体业务需求分析,如图2-1坦克大战游戏流程图。图2-1坦克大战游戏流程图玩家在打开游戏后将直接进入游戏的主菜单界面,其中上面有显示游戏名称。下方有可以供玩家进行选择的三个选项,其中分别有:游戏帮助,单人模式,双人模式。其中选择游戏帮助的按钮可以弹出一个窗口,里面有记载了关于本游戏的基本控制按键和游戏规则的说明。另外还有两种开始游戏的方式,因为本游戏有两种游戏模式,第一种是单人模式,只能由一个玩家进行游戏,其余的都是敌人。而第二种是双人模式,可以由两名玩家进行游戏,两名玩家分别控制不同的坦克进行游戏。选择任意游戏模式将直接开始游戏进入游戏界面,此时游戏已
36、经开始,玩家需要打倒其他敌方坦克来保护自己的大本营,游戏右方也会显示击倒敌方坦克的数量。如果大本营被破环,游戏将结束。也将会自动返回游戏主菜单界面。2.4游戏功能的需求分析这款坦克大战游戏主要分成三个部分,其中有游戏主菜单界面,游戏界面和游戏帮助界面。游戏主菜单界面:主要两种游戏模式并开始游戏的方法有单人模式和双人模式,也可以选择游戏帮助。游戏界面:主要包括单人进行游戏和双人同时一起控制坦克进行游戏。游戏帮助界面:主要用来显示游戏基本操作方法和游戏的规则。如图2-2坦克大战游戏功能模块图。图2-2坦克大战游戏功能模块图2.4.1坦克大战游戏功能分析1.游戏主菜单界面:(1) 游戏开始:玩家可以
37、在这个界面选择游戏模式,选择完成后可以直接跳到游戏界面直接开始游戏。(2) 游戏帮助打开:玩家在第一次玩这款游戏时可以在这个界面选择游戏帮助来直接打开游戏帮助界面,便可以快速了解这款游戏基本操作和游戏规则。2.游戏界面:(1)单人模式:玩家在选择单人模式时游戏只限有一名玩家进行游戏,此时只有一辆坦克孤军奋战保护大本营。(2)双人模式:玩家在选择双人模式时游戏可以有两名玩家同时控制两辆坦克进行协同作战,共同保护大本营。(3)玩家的移动和攻击:编写用键盘所对应的键位控制玩家坦克的移动的脚本,编写玩家控制坦克攻击的脚本。(4)敌方坦克的AI:编写敌方坦克自动运动和攻击的脚本。(5)子弹:编写子弹飞行
38、方向和飞行速度的脚本,以及与碰撞的物体的识别。3.游戏帮助界面:(1)游戏介绍:显示写有游戏的基本操作和游戏规则的窗口。2.5 UML系统建模统一建模语言(UML,UnifiedModelingLanguage)是面向对象软件的标准化建模语言,UML因其简单、统一的特点,而且能表达软件设计中的动态和度静态信息,目前已成为可视化建模语言的工业标准Mert Ozkaya. Are the UML modelling tools powerful enough for practitioners? A literature review. 2019, 13(5):338-354.。2.5.1用例图坦
39、克大战游戏用例图如图2-3坦克大战游戏用例图。图2-3坦克大战游戏用例图2.5.2用例图规约表玩家的用例规约表:表2-1游戏帮助查看用例规约表用例编号2-1用例名称游戏帮助查看功能描述当玩家成功打开游戏后,可以选择查看游戏帮助,用以快速了解游戏的基本控制的键位和游戏规则。执行者玩家前置条件坦克大战游戏正常运行。后置条件返回主菜单界面涉众利益玩家基本路径1.游戏打开成功后,选择查看游戏帮助。2.游戏帮助打开成功后,显示内容。扩展如果查看结束后可以直接选择返回,将返回到游戏主菜单界面。字段列表选项名称,游戏介绍。业务规则不能修改里面的内容。备注无表2-2单人游戏用例规约表用例编号2-2用例名称单人
40、游戏功能描述玩家成功打开游戏后可以选择单人模式直接开始游戏,此时将只能由一名玩家进行游戏。执行者玩家前置条件坦克大战游戏正常运行后置条件返回主菜单界面涉众利益玩家基本路径1.在游戏主菜单界面选择单人模式2.开始单人模式游戏扩展游戏结束后将直接返回游戏主菜单界面。字段列表选项名称,击倒敌方坦克的数量。 续表2-2业务规则大本营被敌方坦克或者玩家坦克破环后游戏将结束,并返回游戏主菜单界面。备注无表2-3双人游戏用例规约表用例编号2-3用例名称双人游戏功能描述玩家成功打开游戏后也可以选择双人模式直接开始游戏,此时将可以由两名玩家同时控制不同的坦克进行协同作战游戏。执行者玩家前置条件坦克大战游戏正常运
41、行后置条件返回主菜单界面涉众利益玩家基本路径1.在游戏主菜单界面选择双人模式2.开始双人模式游戏扩展 双人模式下也可以只有一名玩家进行游戏,第二辆坦克不做控制也不受影响。字段列表选项名称,击倒敌方坦克的数量。业务规则大本营被敌方坦克或者玩家坦克破环后游戏将结束,并返回游戏主菜单界面。备注无表2-4游戏分数查看用例规约表用例编号2-4用例名称游戏分数查看功能描述玩家在游戏进行中可以实时查看到自己所击倒敌方坦克的数量。执行者玩家前置条件坦克大战游戏正常运行,而且游戏已经开始。后置条件返回主菜单界面涉众利益玩家 续表2-4基本路径1. 在游戏主菜单界面下选择开始游戏(即选择单人模式或选择双人模式,游
42、戏将直接开始)。2. 游戏界面右方显示击倒敌方坦克的数量。扩展无字段列表选项名称,击倒敌方坦克的数量。业务规则无备注无表2-5玩家坦克的移动用例规约表用例编号2-5用例名称玩家坦克的移动功能描述游戏开始时玩家可以控制自己的坦克在地图里自由移动。执行者玩家前置条件坦克大战游戏正常运行,而且游戏已经开始。后置条件读取玩家所在位置。涉众利益玩家基本路径1.在游戏主菜单界面下选择开始游戏(即选择单人模式或选择双人模式,游戏将直接开始)。2.控制坦克移动1.1玩家按下W键,坦克向上移动。1.2玩家按下S键,坦克向下移动。1.3玩家按下A键,坦克向左移动。1.4玩家按下D键,坦克向右移动。扩展在地图内可自
43、由移动。字段列表键位,击倒敌方坦克的数量。业务规则1.不能移动出地图外。2.碰撞到障碍物时不能移动备注无表2-6玩家坦克的攻击用例规约表用例编号2-6用例名称玩家坦克的攻击续表2-6功能描述玩家坦克按下空格键可以随时随地发动攻击。执行者玩家前置条件坦克大战游戏正常运行,而且游戏已经开始。后置条件子弹碰撞识别涉众利益玩家基本路径1.在游戏主菜单界面下选择开始游戏(即选择单人模式或选择双人模式,游戏将直接开始)。2.玩家按下空格键使坦克进行攻击。扩展1.攻击墙体障碍物可以使其破坏消失。2.比如草,水等障碍物,子弹的攻击是可以穿过。3.可以攻击自己的大本营,但游戏也会因此游戏失败字段列表键位,击倒敌
44、方坦克的数量。业务规则1.每次攻击由一定的时间间隔。2.攻击出来的子弹也有一定的飞行速度。备注无2.6本章小结 本章首先主要对坦克大战游戏各方面的可行性进行了分析,接下来对坦克大战游戏的业务需求进行详细分析并且用业务流程图分别展示了坦克大战游戏的业务流程;通过功能模块图展示了坦克大战游戏的功能需求;最后,为了更加直观地向玩家展示坦克大战游戏的各种功能,给出了用例图并对各个用例用表格更加详细地对坦克大战游戏进行简单明了的说明。第3章 游戏设计因为这款坦克大战游戏是由游戏主菜单界面,游戏界面和游戏帮助界面这三个界面共同组成的,所以下面将分开三个界面进行设计和实现。3.1游戏主菜单界面3.1.1游戏
45、主菜单界面的设计1. 场景的搭建:首先需要创建并命名好第一个场景当作游戏主菜单界面,设计好主摄像机,设置好摄像机高度,游戏的背景色调和地图比例等,我这里是选择16:10的比例。如图3-1游戏主菜单界面的场景。如图3-1游戏主菜单界面的场景2. UI设计:在Hierarchy面板按下鼠标右键选择创建UI_Image组件,此时将创建好一个UI图片,该软件也会自动生成UI设计所需要的两个组件:Canvas和EventSystem,在调整好图片在场景中的比例大小后,就可以Inspector面板里把事先准备好的图片素材拉入到创建的Image组件Script插件的Source Image里。另外创建三个空
46、的游戏物体,用来作为指针选择的移动。设计完成后如图3-2 UI设计。图3-2 UI设计3.坦克指针脚本的编写:为了实现指针的移动和实现场景的跳转,需要为坦克指针添加一个脚本。其中使用Input.GetKeyDown()函数监听玩家的键盘的输入,同时记录按下的键位的次数以此来实现坦克指针到底跳转到哪一个空的物体上。而使用SceneManager.LoadScene()函数来实现场景之间的跳转。如图3-3实现指针跳转的方法。图3-3实现指针跳转的方法这里需要注意的是,这里需要引用到创建好的三个空物体,所以需要在Inspector面板里的Scirpt的插件里拉入实体以供引用,不然软件将会报错,下面的其他游戏界面的开发大部分引用都是如此。如图3-4引用物体图3-4引用物体3.2游戏界面3.2.1游戏素材的导入,处理和场景的搭建1. 游戏场景的搭建:首先需要创建并命名好第二个场景,同时设计好主摄像机,设置好摄像机高度,游戏的背景色调和地图比例等,我这里是选择5:4的比例,这样看起来也会比较舒服,而且两边空余的部分也可以用来显示生命值和得分。如图3-5游戏场景。图3-5游戏场景的搭建2