ImageVerifierCode 换一换
格式:DOC , 页数:29 ,大小:3.43MB ,
资源ID:6153424      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-6153424.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于Unity3D引擎的 荒漠坦克世界的实现——毕业论文.doc)为本站会员(wo7103235)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

基于Unity3D引擎的 荒漠坦克世界的实现——毕业论文.doc

1、 本科生毕业论文基于 Unity3D 引擎的荒漠坦克世界的实现学 院: 海洋信息工程学院 专 业: 软件工程 学 生 姓 名: 刘官俊 班 级: 学号 指导教师姓名: 职称 最终评定成绩 年 月海南热带海洋学院本科毕业论文基于 Unity3D 引擎的荒漠坦克世界的实现摘 要坦克大战是游戏发展史上浓墨重彩的一笔,是 80 后,90 后不可磨灭的童年回忆,而随着技术的发展,在 FC 机上运行的坦克大战,在画面和操作性上已经渐渐无法满足人们的需求。本文将用新时代的技术,将经典的坦克大战用 Unity3D 引擎重新再现,使其拥有更优良的画面和特效,同时提高它的趣味性和可玩性。该版游戏在 Unity3D

2、 引擎上进行开发,采用的编程语言为 C#,游戏为双人操作对战的坦克大战,用户通过键盘控制坦克的移动、攻击等功能,文中阐述了如何通过Unity3D 中组件的调用与设置实现碰撞、爆炸、攻击、移动等功能。通过对主相机编写中心点跟随算法来实现镜头的切换、放大、缩小。通过得到一个空物体的 transform 组件来设置炮弹的发射位置。游戏设有简洁友好的人机交互界面,开始游戏后,场景和坦克等物体进行初始化,任一玩家的坦克爆炸后,镜头会有拉近的特写特效,提示游戏结束。稍加等待后,可以继续开始第二局对战。进行本项目,让自己在运用 C#编程知识和 Unity3D 引擎的各种功能去开发游戏的过程中,尽可能多的去学

3、习更多的知识,完善自己的能力,整个游戏中,对游戏功能的实现,在逻辑层面上对自己是很好的锻炼,同时也能让自己更加熟悉 Unity3D 的一些功能,加强自己游戏开发的能力。关键词:Unity3D;C#语言;坦克大战;游戏海南热带海洋学院本科毕业论文Unity3D desert tank world.ABSTRACTWith the development of the society, people consumption level rise, entertainment increasingly rich, including computer games developed rapidly

4、and has become the important attractions of the younger generation, the game industry has become a promising industry.Tanks war is a game of a history of thick mo chongcai, is after 80, 90 after an indelible memory of childhood, the earliest tanks war game company is from Japan to south dream palace

5、 in 1980 launch strategy games. This article will use the technology of the new era to reappear the classic tank war with Unity3D engine and give it better pictures and special effects.On the version of the game in the Unity3D engine development, using the programming language is c #, through to the

6、 complete development process of the whole game, detailing the requirements analysis, system analysis, project design, code design and software development process. Game against tanks war for double operation, the user through the keyboard to control the movement of tanks, attack, and other function

7、s, this paper expounds how to use Unity3D components in the call and set up to realize collision, explosion, attack, mobile, etc. The main camera can be used to switch, enlarge and shrink the camera. The firing position of the shell is set by the transform component of an empty object. Game is conci

8、se and friendly human-computer interaction interface, after the game, and tanks to initialize objects, any players tank explosion, there will be a closer close-up shots effects, game over. After a bit of waiting, you can continue the second game.For the reason of this project is to let oneself in th

9、e use of c # programming knowledge and various function of Unity3D engine to develop in the process of the game, as much as possible to learn more knowledge, improve their abilities, the whole game, for the realization of the function of the game, at the logical level is a good exercise to oneself,

10、also can let oneself become more familiar with some features of Unity3D, strengthen their ability of game development.Keywords: Unity3D; C SHARP; Tanks War; Game海南热带海洋学院本科毕业论文目 录1 绪论 11.1 背景与意义 11.2 本文的主要工作 .11.3 论文的组织结构 .22 需求分析及概要设计 32.1 项目功能概述 32.1.1 功能需求 32.1.2 用例分析 42.2 项目性能要求 82.2.1 软件稳定性 82.2

11、.2 软件功能 92.3 可行性分析 93 项目的详细设计与实现 103.1 开发工具及运行环境 103.2 功能设计 103.3 功能描述 153.4 项目的实现 153.4.1 场景设置 .153.4.2 坦克移动功能 .153.4.3 相机镜头功能 153.4.4 血条功能 163.4.5 碰撞功能 .164 项目测试 .184.1 黑盒测试 184.2 白盒测试 184.3 测试测试用例 .184.4 项目运行情况 .194.5 项目评价 22结 论 23参考文献 24致 谢 25海南热带海洋学院本科毕业论文海南热带海洋学院本科毕业论文11 绪论1.1 背景与意义 电子游戏(Elect

12、ronic Game)概指利用电子设备为媒介进行交互游戏,始于 20 世纪 60 年代,其主要参考是将现实的游戏活动或故事传说进行图像化呈现于电子设备之上。电子游戏拥有两大特性:互动性及模拟性。互动性即人与媒介设备之间的交互,包括输入与设备的反馈。模拟型即指电子游戏是对现实世界或人类思维的一种模拟呈现。在社会飞速发展的 21 世纪,人们的消费水平日渐提升,娱乐方式也更加多样化,电子游戏作为一种方便快捷、低门槛、强多巴胺的娱乐方式,已经成为了年轻一代最受欢迎的娱乐方式,游戏已经成为了很多人生活中不可或缺的一部分, 坦克大战是由日本南梦宫游戏公司于 1980 年发售的一款风靡世界的平面射击类游戏。

13、简单有趣、老少皆宜、变化无穷是坦克大战如此吸引人的原因,它是 80 后、90 后们不可磨灭的童年回忆,同时也是电子游戏发展史上弥足珍贵的宝藏。随着游戏开发技术的蓬勃发展,曾经依附于 FC 机平台的坦克大战,在画面呈现、游戏流畅性方面已经无法满足现在人们的需求了。本次设计便以坦克大战为灵感,使用 Unity3D 引擎,开发一款 3D 版的坦克大战,游戏为双人对战模式,通过发弹消灭对方的坦克即可获得胜利、游戏中设置了房屋、塔楼巨石等障碍物限制坦克的移动,或作为对战中的掩护体,游戏中将实现控制坦克的移动、发弹、碰撞、坦克血条变化、相机镜头的跟随、放大及缩小、背景音乐及音效、坦克及子弹的爆炸、游戏的开

14、始、结束界面等功能。基于 Unity3D 的荒漠坦克世界在 Unity3D 引擎上进行开发,主要使用的编程语言为 C#,通过对引擎中光线即渲染的设置、组件的添加与调用,力求开发出一个运行流畅、画面优良、易于上手的 3D 版坦克大战。1.2 本文的主要工作本次设计的目标是用 Unity3D 引擎开发出一个画面精致、运行流畅的 3D 版坦克大战。对引擎中各种功能的设置与调用是开发游戏中万分重要的一环。在开发过程之中,一边学习一边思考,对自己的编程能力、游戏开发能力是一种非常好的补充及锻炼机会,在这个过程中,本人完成了自己的毕业设计。此次项目是 PC 端的应用程序,原因是 PC 电脑更为强劲的性能可

15、以更好的满足游戏流畅运行的需求,通过键盘进行操作,对于一款 3D 射击类游戏而言也更为方便和精准。1 绪论21.3 论文的组织结构本文一个有五个章节。各个章节的内容概述如下:第一章:绪论。介绍了本次论文课题的背景,通过对行业现状的分析阐述了选择该课题的原因、同时介绍清楚项目的开发环境及运行环境、本文的主要工作等内容。第二章:需求分析及概要设计。对项目的功能分析、用例分析、项目的性能要求进行分析,并对项目的可行性进行简单的分析。第三章:项目设计。对项目的功能设计和引擎功能的设置及调用进行分析。第四章:项目的详细设计与实现。详细描述了项目的文件结构与用途,并对部分功能的实现进行了详细的分析介绍。第

16、五章:项目测试。简单介绍了项目测试的重要性,然后分别对系统进行了黑盒测试、白盒测试,检测系统是否符合要求。海南热带海洋学院本科毕业论文32 需求分析及概要设计2.1 项目功能概述本项目的主要运行流程是:用户打开游戏后,在开始界面可以阅读使用说明,点击开始游戏后,初始化主场景、环境物体及双方玩家控制的坦克,玩家通过键盘控制坦克的移动和发弹,环境物体会限制坦克的移动,也可以帮助玩家躲避炮弹,进行过程中,镜头会通过尺寸的放大和缩小保证时刻囊括两个坦克,子弹碰到对方子弹、障碍、地面及对方坦克时都会爆炸,坦克受到攻击后,血条会减少,当减少为 0 时,坦克爆炸,此时相机镜头会拉近给出特写,同时通知游戏结束

17、2.1.1 功能需求能够在预算的时间和费用范围之内, 提供可靠的、容易维护的软件, 无一例外的是软件开发方和客户方的共同愿望。在系统开发过程中, 无论是采用传统的结构化方法还是面向对象开发方法, 都明确指出正确获取系统需求是最终成功开发软件的前提条件 1。根据对游戏运行流程的概述,梳理出了项目中的功能需求,整理了项目的功能结构,其功能结构图如图 2.1 所示。2 需求分析及概要设计4图 2.1 项目的功能结构图本项目有详细的模块划分。软件主要由控制坦克功能、相机镜头、开始界面、血条功能、碰撞功能组成,详细阐述如下:控制坦克功能。玩家通过键盘控制坦克,玩家 1 通过 wasd 控制坦克移动,通过

18、空格控制坦克发弹,玩家 2 通过上下左右方向键控制坦克移动,通过小键盘 Enter 键控制坦克发弹。相机镜头功能。相机始终跟随两个坦克移动,通过坦克的距离中心点与相机距离的偏移,自动放大和缩小尺寸,来保证镜头中始终囊括两个坦克。开始界面功能。打开游戏后,玩家首先看到的便是开始界面,点击开始界面的“使用说明”可以查看游戏规则,了解操作方式。点击“开始游戏” ,进入游戏界面,开始初始化场景、障碍物、坦克等物体。血条功能。通过血条的方式让 HP 数值可视化,坦克受到敌方子弹攻击后,HP 会减少了,血条按一定比例减少,当 HP 为 0 时,血条显示扣完,同时坦克爆炸。碰撞功能。海南热带海洋学院本科毕业

19、论文5游戏中设有房屋、瞭望塔、岩石等障碍物,坦克碰上障碍物后,会有物理效果,无法穿过障碍物,同时障碍物也会阻挡子弹,亦可作为坦克的掩体。同样,子弹和坦克也会添加自身的碰撞效果,例如,子弹碰到坦克时会爆炸,子弹与子弹碰撞时,也会爆炸,任一一方的坦克也不能穿越另一方的坦克。背景音乐和音效功能。一个没有音乐和音效的游戏是没有灵魂的,音效和音乐可以很大程度上提升玩家的游戏体验,本项目主要有一个场景背景音乐和五个音效,分别为:坦克静止时的引擎声、坦克移动时的轰鸣声、发弹的音效、子弹爆炸的音效、坦克爆炸的音效。2.1.2 用例分析用例视图(以下简称用例图)描述系统的外部行为(即“做什么” ) ;设计视图描

20、述用例图中功能需求的逻辑结构;过程视图描述系统的协作事件;执行视图描述构成系统的物理部件;配置视图描述系统在物理环境下物理部件的分布。用例图被认为是中心和基础,它定义系统的需求,从而对其他视图起决定和推动作用 2。本项目有玩家一个角色,通过对该角色与软件之间的联系,构建用例图,用以描述软件功能。对玩家进行用例行为建模,如图 3.1 所示。用例编号:1用例名称:玩家用例图用例描述:玩家打开游戏后,在开始界面可以选择“使用说明”阅读操作指南和游戏规则,也可以点击“开始游戏”进行对战。进入游戏后,通过键盘可以操作坦克移动和发弹。执行者:玩家前置条件:玩家成功运行软件后置条件:能顺利进行各种操作活动步

21、骤:(1)玩家打开软件,进入开始界面;(2)选择“使用说明”查看规则及操作方式;(3)进入游戏后,通过键盘操作坦克移动和发弹。2 需求分析及概要设计6图 3.1 玩家用例图2.2 项目性能要求2.2.1 软件稳定性1、软件要确保长时间运行不崩溃,不卡顿,确保游戏进行的流畅性。2、若发现软件存在 bug,需及时进行修改,修改后进行软件更新。2.2.2 软件功能本项目主要实现 5 个主要功能,分别为坦克功能、相机镜头、开始界面、血条功能、碰撞功能。详解如下:控制坦克功能。玩家通过键盘控制坦克,玩家 1 通过 wasd 控制坦克移动,通过空格控制坦克发弹,玩家 2 通过上下左右方向键控制坦克移动,通

22、过小键盘 Enter 键控制坦克发弹。相机镜头功能。相机始终跟随两个坦克移动,通过坦克的距离中心点与相机距离的偏移,自动放大和缩小尺寸,来保证镜头中始终囊括两个坦克。开始界面功能。打开游戏后,玩家首先看到的便是开始界面,点击开始界面的“使用说明”可以海南热带海洋学院本科毕业论文7查看游戏规则,了解操作方式。点击“开始游戏” ,进入游戏界面,开始初始化场景、障碍物、坦克等物体。血条功能。通过血条的方式让 HP 数值可视化,坦克受到敌方子弹攻击后,HP 会减少了,血条按一定比例减少,当 HP 为 0 时,血条显示扣完,同时坦克爆炸。碰撞功能。游戏中设有房屋、瞭望塔、岩石等障碍物,坦克碰上障碍物后,

23、会有物理效果,无法穿过障碍物,同时障碍物也会阻挡子弹,亦可作为坦克的掩体。同样,子弹和坦克也会添加自身的碰撞效果,例如,子弹碰到坦克时会爆炸,子弹与子弹碰撞时,也会爆炸,任一一方的坦克也不能穿越另一方的坦克。2.3 可行性分析可行性分析(Feasibility Analysis)是依据软件开发环境、工程量、资金等情况困难度进行的评估,是任何一个项目都必须进行的分析步骤。 3。本项目基于 Unity3D 引擎进行开发,Unity3D 是由 Unity Technologies 开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面

24、整合的专业游戏引擎。其编辑器运行在Windows 和 Mac OS X 下,Unity 之所以功能强大,很大程度要归功于它的跨平台发布 发 布 平 台 包 括 Windows,Linux,Mac OSX,iOS,Android ,Xbox360 ,PS3,WiiU 和 Web 等, 开发者无须过多考虑平台之间的差异,只须把精力集中到制作高质量的游戏上即可。本项目通过 Unity3d 引擎开发,其中 Unity 官网提供免费的个人试用版本,游戏所用到的素材均为论坛免费开放供人使用的,所以开发资金趋近为 0。3 项目的详细设计与实现3.1 开发工具及运行环境软件采用 Unity3D 引擎进行开发,

25、编程语言选用 C#。为确保运行顺畅,最好是装载独立显卡(安装好显卡驱动)的计算机上运行,计算机操作系统方面,需在装有Windows 或 MacOS 系统的设备上运行。3.2 功能设计软件主要由控制坦克功能、相机镜头、开始界面、血条功能、碰撞功能组成,详细3 项目的详细设计与实现8阐述如下:控制坦克功能。玩家通过键盘控制坦克,玩家 1 通过 wasd 控制坦克移动,通过空格控制坦克发弹,玩家 2 通过上下左右方向键控制坦克移动,通过小键盘 Enter 键控制坦克发弹。相机镜头功能。相机始终跟随两个坦克移动,通过坦克的距离中心点与相机距离的偏移,自动放大和缩小尺寸,来保证镜头中始终囊括两个坦克。开

26、始界面功能。打开游戏后,玩家首先看到的便是开始界面,点击开始界面的“使用说明”可以查看游戏规则,了解操作方式。点击“开始游戏” ,进入游戏界面,开始初始化场景、障碍物、坦克等物体。血条功能。通过血条的方式让 HP 数值可视化,坦克受到敌方子弹攻击后,HP 会减少了,血条按一定比例减少,当 HP 为 0 时,血条显示扣完,同时坦克爆炸。碰撞功能。游戏中设有房屋、瞭望塔、岩石等障碍物,坦克碰上障碍物后,会有物理效果,无法穿过障碍物,同时障碍物也会阻挡子弹,亦可作为坦克的掩体。同样,子弹和坦克也会添加自身的碰撞效果,例如,子弹碰到坦克时会爆炸,子弹与子弹碰撞时,也会爆炸,任一一方的坦克也不能穿越另一

27、方的坦克。3.3 功能描述游戏主要是实现整个场景的设置,实现玩家参加游戏的整个流程,玩家进入游戏开始界面,选择“使用说明”或开始游戏,初始化游戏场景和物体后,通过键盘控制坦克的移动、发弹等主要操作,当玩家消灭敌方坦克后,程序会判定游戏结束,给出提示,稍加等待后,会开始下一轮游戏。为体现游戏真实性,加入了碰撞功能。为提高用户使用体验,加入了血条功能、相机跟随功能、背景音乐及音效等。海南热带海洋学院本科毕业论文93.4 项目的实现3.4.1 场景设置在 Unity3D 中导入素材后,需要对环境光线等进行初始化设置,以提升画面呈现效果。首先场地素材中,已经包含了 Directional light,

28、所以需要删除 Unity 主场景自带的直射光线,在 lighting 的设置中,将光源设置为 Color,同时将颜色设置为黄色偏灰,以保证场地颜色真实且明亮。光线设置如图 3.1 所示设置后场景效果如图 3.2 所示。图 3.1 光线设置截图图 3.2 场景效果图3.4.2 坦克控制功能添加坦克素材后,首先为坦克添加一个 Rigidbody 的刚体组件,在坦克的角色下,创建一个名为 TankMove 的 C#脚本,调用自身的 Rigidbody 组件,定义 Speed 变量来控制坦克移动的速度,定义 angularSpeed 变量来控制坦克的旋转速度,通过Input.GetAxis 方法来确定

29、移动方向,两个坦克通过编号 Number 来区分控制方式。控制坦克发弹的功能,需要在坦克弹口的位置放置一个空的游戏物体,将物体的坐标和朝向定为子弹发射的位置和角度,同时在 TankAt 的脚本中,实例化 Prefabs 中3 项目的详细设计与实现10的子弹物体,将实例化出的子弹定位在空的游戏物体的位置,再给子弹添加 Rigidbody的刚体组件即可。移动相关代码如图 3.3 所示,坦克发弹功能如图 3.4 所示。图 3.3 坦克移动代码截图图 3.4 坦克发弹功能代码截图3.4.3 相机镜头功能功能为给玩家提供更好的游戏体验,镜头需要时刻跟随坦克移动,同时镜头要始终包含两个坦克,镜头的算法设计

30、思路时,首先镜头中心保持在两个坦克距离的中心点,计算出中心点与相机位置的偏移,在 Update 方法中,用这个偏移加上不停变化的中心点的位置用以定位跟随。镜头的放大缩小功能通过距离*0.58 得出变化的尺寸(自己设定的值,可以调整) 。于是便实现了镜头的放大和缩小功能,当两个坦克距离非常近的时候,镜头会像放大镜一样放大,当坦克互相远离时,镜头会一直缩小,始终保持两个坦克都在镜头当中。具体相机镜头的代码如截图 3.5 所示。海南热带海洋学院本科毕业论文11图 3.5 相机镜头代码图3.4.4 血条功能为使 HP 数值可视化,加入血条功能以提高玩家游戏体验,首先加入一个CanvasUI,将 Sli

31、der 和 Fill 设置为上下左右居中,此时已形成一个大圆,改变角度和尺寸,即可让它依附于坦克身下,接着通过脚本将它的填充比例与 HP 数值想对应,即可实现血条的功能。血条相关代码如图 3.6 所示,血条的效果图如图 3.7 所示。图 3.6 血条功能代码图3 项目的详细设计与实现12图 3.7 血条效果图3.4.5 碰撞功能碰撞功能分为两个部分,一个是坦克的碰撞功能,一个是子弹的碰撞功能,坦克不能越过房屋、瞭望塔、岩石等障碍物,也不能越过对方的坦克,子弹碰到障碍物或坦克、地面时,会触发爆炸的效果。具体实现部分分别阐述如下:a) 为坦克添加 BoxCollider 碰撞器,调整碰撞器以包裹住

32、坦克。勾选上 Is Trigger。BoxCollider 的设置如图 3.8 所示。b) 为子弹添加一个 CapsuleCollider,即胶囊状碰撞器,调整大小以包裹住子弹,勾选上 Is Trigger,胶囊碰撞器的设置如图 3.9 所示。接着为子弹添加一个 C#脚本,命名为 Shell,当子弹碰撞上坦克时,使用 OnTriggerEnter 方法,在该方法下获得子弹的位置,在子弹当前位置,实例化爆炸的特效,代码实现如图 3.10 所示。图 3.8 BoxCollider 设置图海南热带海洋学院本科毕业论文13图 3.9 CapsuleCollider 设置图图 3.10 子弹爆炸功能代码

33、图3.4.6 音乐及音效功能为提高用户游戏体验,加入合适的背景音乐和音效是非常必要的,添加背景音乐的思路是,在场地中加入一个空游戏物体,这个物体可以理解为播放音乐的音响,在这个“音响”中加入一个 AudioSource 组件,将事先准备好的背景音乐加入 AudioClip属性中,调节 Volume 控制音量大小,勾选 Play On Awake 和 Loop 即可实现自动播放和循环播放,这样就完成了背景音乐的功能,关于 AudioSource 组件的调用如图 3.11所示。3 项目的详细设计与实现14图 3.11 背景音乐设置图音效方面,主要分为五个音效:坦克静止时的引擎声坦克移动时的轰鸣声发

34、弹的音效子弹爆炸的音效坦克爆炸的音效在此以坦克爆炸的音效为例来阐述实现思路。触发坦克爆炸音效的条件是:坦克的 HP 数值降为 0,此时坦克爆炸,触发音效,因此在控制坦克血量的 TankHs 脚本中编写代码,在坦克 HP 小于等于 0 时,使用 AudioSource 中的 PlayClipAtPoint 方法,播放坦克的爆炸音效,播放的音效位置就在当前的当前的坐标,所以在脚本中,还有调用坦克的 transform 组件以得到坦克的当前位置。具体实现代码如图 3.12 所示。图 3.12 坦克爆炸音效代码图海南热带海洋学院本科毕业论文154 项目测试在开发软件的过程中,人们使用了许多保证软件质量

35、的方法分析、设计和实现软件,但难免在工作中犯错误。这样,在软件产品中就会隐藏许多错误和缺陷。对于规模大、复杂性高的软件更是如此。在这些错误中,有些是致命的错误,如果不排除,就会导致生命与财产的重大损失。这种情况迫使人们必须认真计划、彻底地进行软件测试 5 。4.1 黑盒测试黑盒测试就是把测试对象看做是一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明,不需测试软件产品的内部结构和处理过程。从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出程序中所有的错误。实际上测试情况有无穷多个,人们不

36、仅要测试所有正常的输入,而且还要对那些不合法但可能的输入进行测试 6。黑盒测试主要针对软件界面和软件功能进行测试。将程序的各个模块和功能,放在正常条件下运行,在运行的过程当中输入一些错误的信息或者执行一些错误的操作步骤,测试程序能否正常返回结果。如:在控制坦克移动时,按下一些无效的按键。4.2 白盒测试作为软件测试中的一种典型测试技术,白盒测试是把测试对象看作一个打开的盒子。 利用白盒测试法进行动态测试时,需要测试软件产品的内部结构和处理过程,不需测试软件产品的功能。故白盒测试也称结构测试或逻辑驱动测试。白盒测试了解软件产品内部工作过程,通过测试来检测软件产品内部动作是否按照软件规格说明书的规

37、定正常进行。按照程序内部的结构测试程序,检验程序中的每条通路是否都能按预定要求正确工作,而不管软件产品的功能如何,主要用于软件验证 7。4.3 测试用例测试用例是为某个特殊的目标而编制的一组测试输入、执行条件以及输出的一种测试例子,测试用例数量有时过多,有必要采用化方法选取有代表性的测试用例来提高发现错误的概率 8。1、坦克移动测试用例如表 4.1 所示表 4.1 坦克移动测试用例表用例说明 坦克移动的测试4 项目测试16测试需求 玩家能通过不同的按键控制坦克移动测试用例1、什么都不按2、按下 wasd3、按下上下左右方向键4、在键盘上随意按键5、wasd 和上下左右方向键同时按下期望输出1、

38、坦克不能移动2、玩家 1 的坦克移动,玩家 2 坦克不动3、玩家 1 的坦克不动,玩家 2 坦克移动4、坦克不能移动5、玩家 1 的坦克移动,玩家 2 坦克移动实际输出1、坦克不能移动2、玩家 1 的坦克移动,玩家 2 坦克不动3、玩家 1 的坦克不动,玩家 2 坦克移动4、坦克不能移动5、玩家 1 的坦克移动,玩家 2 坦克移动2、相机镜头测试用例如表 4.2 所示表 4.2 相机镜头测试用例用例说明 相机镜头的测试测试需求 相机镜头能否跟随坦克移动,能否始终囊括两个坦克测试用例1、两个坦克都不动2、坦克 1 移动,坦克 2 不动3、坦克 1 不动,坦克 2 移动4、两个坦克都移动期望输出1

39、、镜头囊括两个坦克,不移动2、镜头囊括两个坦克,随坦克 1 的移动,镜头尺寸放大或缩小3、镜头囊括两个坦克,随坦克 2 的移动,镜头尺寸放大或缩小4、镜头囊括两个坦克,随坦克的移动,镜头尺寸放大或缩小实际输出1、镜头囊括两个坦克,不移动2、镜头囊括两个坦克,随坦克 1 的移动,镜头尺寸放大或缩小3、镜头囊括两个坦克,随坦克 2 的移动,镜头尺寸放大或缩小4、镜头囊括两个坦克,随坦克的移动,镜头尺寸放大或缩小海南热带海洋学院本科毕业论文173、血条功能测试用例如表 4.3 所示表 4.3 血条功能测试用例用例说明 血条功能的测试测试需求 游戏开始时,血条满格,收到攻击,血条的填充减少测试用例1、

40、游戏开始,双方坦克未发动攻击2、坦克 1 受到攻击,坦克 2 未受到攻击3、坦克 2 受到攻击,坦克 1 未受到攻击4、双方坦克攻击其它物体期望输出1、血条正常显示且填充满格2、坦克 1 血条填充减少,坦克 2 血条填充不变3、坦克 2 血条填充减少,坦克 1 血条填充不变4、坦克 1 和坦克 2 血条填充不变且正常显示实际输出1、血条正常显示且填充满格2、坦克 1 血条填充减少,坦克 2 血条填充不变3、坦克 2 血条填充减少,坦克 1 血条填充不变4、坦克 1 和坦克 2 血条填充不变且正常显示设计多个白盒测试用例进行测试,确保软件可以正常使用。4.4 项目运行情况通过黑盒、白盒测试用例,

41、软件基本完成成立用户需求。坦克移动的效果如图 4.1、图 4.2 所示:4 项目测试18图 4.1 坦克不动时效果图 4.2 按下方向键后坦克移动效果相机镜头功能效果,如图 4.3、图 4.4、图 4.5 所示海南热带海洋学院本科毕业论文19图 4.3 游戏开始时镜头初始距离图 4.4 移动坦克靠近,镜头放大效果图4 项目测试20图 4.5 移动坦克远离对方,镜头缩小效果图坦克血条的效果图 4.6 所示,初始满填充血条的效果参考图 4.4:图 4.6 受到攻击后血条效果图海南热带海洋学院本科毕业论文21结 论本次设计便以坦克大战为灵感,使用 Unity3D 引擎,开发一款 3D 版的坦克大战,

42、游戏为双人对战模式,通过发弹消灭对方的坦克即可获得胜利、游戏中设置了房屋、塔楼巨石等障碍物限制坦克的移动,或作为对战中的掩护体,游戏中将实现控制坦克的移动、发弹、碰撞、坦克血条变化、相机镜头的跟随、放大及缩小、背景音乐及音效、坦克及子弹的爆炸、游戏的开始、结束界面等功能。以达到运行流畅、易于操作、画面精良的 3D 版坦克大战。本次设计的整个开发过程,首先对项目进行了系统分析以及项目需求分析,接着通过对引擎的功能和代码逻辑层面的实现对项目进行了功能设计分析,紧接着对项目进行了详细的设计与实现,完成项目的开发工作,最后对项目进行了黑盒测试以及白盒测试,确保游戏核心功能的可行性与稳定性。经过一段时间

43、的开发,已经完成了本游戏的主要核心功能,已经实现了稳定、流畅的运行,但是本软件依然还有很多的不足,有很多可以完善的地方,比如添加更多的游戏模式,增加一些功能性物品的随机掉落,增强游戏的可玩性和趣味性。参考文献22参考文献1 孙军,孙怡宁,蒋敏,毕宝庆.基于 UML 的系统需求分析 M. 计算机工程与应用,2015.52 张睎. 以 UML 用例图为基础的系统需求分析M. 现代计算机(专业版).2016.123 余法红,崔华,杨开英. 软件项目中的可行性分析方法研究M.福建电脑.2015.3 4 穆海明,刘盼,刘兴华.基于 Unity 的游戏开发M.沈阳理工大学.2016.45 张新华,何永前.

44、 软件测试方法概述J.科技视界.2015. 26 向润. 黑盒测试方法探讨J.软件导刊.2016.17 徐青翠,柴政. 白盒测试方法分析与研究J. 电脑知识与技术.2017.68 魏少涵. 优化测试用例的黑盒测试方法研究J. 软件导刊.2015.1海南热带海洋学院本科毕业论文23致 谢首先必须要由衷的感谢老师给予我的帮助,从选题开始,老师就耐心的给了我非常多的建议和指导,老师认真负责,在毕业相关的各项事宜上对我们非常的上心,老师低调务实的态度和严谨的精神也深深的影响了我,所谓良师益友大概就是如此了,整个毕业设计的完成,离不开老师的帮助,能遇上老师,确是我三生之幸。大学四年,我时刻都在感激海南热

45、带海洋学院,在这里,我的专业技能开始萌芽,我交到了知心的朋友,遇上了才华横溢的老师,每一天都沉浸在知识的海洋中,学校给我提供了非常优良的生活环境和学习氛围,执行的各项政策也让我感受到了学校对每一位同学无微不至的关心和帮助,我感谢学校,感谢这个让我人生得到一次蜕变机会的乐园,感谢学校的每一丝温暖,在我心里,我的母校,就是最棒的大学。其次,我要感谢并肩奋斗的同学和朋友们,感谢你们在生活上,学习上对我提供的帮助,我会永远铭记我们在学校中共同度过的 4 年美好时光,最美的青春遇上了最可爱的你们,我的心中只有无尽的感激,珍惜每一段回忆,每一丝温暖。感谢你们!最后,感谢我辛苦的父母,是你们教会了我为人处世之道,是你们的含辛茹苦才让我得到了接受教育、学习知识的机会。我发自内心的感谢我的父亲母亲,你们永远是我的指路明灯,是我前行路上最大的靠山。学生签名:日 期:

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报