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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(基于unity3d的塔防游戏的设计与实现.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于unity3d的塔防游戏的设计与实现.docx

1、基于unity3d的塔防游戏的设计与实现基于unity3d的塔防游戏的设计与实现摘 要塔防,即炮塔防御(Tower Defence),也统称TD ,指一类通过在地图上建造炮塔或类似建筑物,以阻止游戏中敌人进攻的策略型游戏,要有阵图。塔防受众很广,游戏模式简单而且可玩性极强,时至今日,塔防在游戏应用中依然是最热门的下载类型之一,比较经典的像植物大战僵尸。本设计使用当前流行的跨平台游戏引擎Unity3d,编程语言为C#。在游戏中,玩家可以在任何空白的地块上建造各种防御塔用于攻击不同类型的怪物,怪物会按照预定的路线前进,当进入目的地的怪物到达一定数量后游戏会失败;当进入目的地的怪物没有到达指定数量且

2、所有怪物都被击杀后游戏通关。使用Unity3d引擎来设计让UI、游戏地图的布置大幅简化。并通过使用拓展性强的类,使得开发者能快速添加新的怪物、防御塔等,提高开发效率的同时,还降低了游戏的开发成本。本文主要从选题背景与意义、可行性与需求分析、游戏设计与功能实现、测试等四个方面,按照制作的流程对本次设计进行论述,对开发的思路、实现以及实现过程中的主要问题都予以描述记录。关键词:游戏;塔防;Unity3d;PCDesign and Implementation of a virtual city building gameAbstractTower defense, that is, turret

3、defense, also known as TD, refers to a kind of strategic game that blocks the enemys attack in the game by building turrets or similar buildings on the map. Tower defense has a wide audience, simple game mode and strong playability. Today, tower defense is still one of the most popular download type

4、s in game applications, such as the classic Plants vs. Zombies.This design uses the current popular cross platform game engine unity3d, and the programming language is C. In the game, players can build various defense towers on any blank land to attack different types of monsters. Monsters will adva

5、nce according to the predetermined route. When the number of monsters entering the destination reaches a certain number, the game will fail. When the number of monsters entering the destination does not reach a specified number and all monsters are killed, the game will pass the customs. Use unity3d

6、 engine to design and simplify the layout of UI and game map. And through the use of expanding classes, developers can quickly add new monsters, defense towers, etc., improve development efficiency, but also reduce the development cost of the game.This paper selected topic background and the signifi

7、cance, feasibility and requirement analysis, game design and function implementation, testing, and so on four aspects, according to the production process of this design is discussed, the development idea and the main problems in the process of implementation and the implementation of all records sh

8、all be described.Keywords: Virtual game;Unity3D game engine;The interactive of games1前言Unity,也称Unity3D,是近几年非常流行的一个3D游戏开发引擎,跨平台能力强,使用它开发的手机游戏数不胜数。8Unity3d是如今游戏开发过程中比较流行的虚拟现实和跨平台游戏开发的虚拟交互式引擎。这几年,不仅Web应用、移动设备的App应用等得到迅猛发展,而且软件开发模式及其管理也发生了较大的变化。9Unity3d引擎为游戏开发者提供了易用的可视化编辑器、资源导入导出、动画与物理系统、光照与音效系统以及对多达21个

9、平台的发布支持等等的功能。除此之外,在Unity3d从发布至今的多年发展中,网络上对于开发者提供的教材文档十分的丰富,官方的Asset Store里面也提供十分丰富多样的插件,由而多年来Unity3d引擎深受开发者的喜爱、逐步成为全球开发者普遍试用的交互式引擎。1.1论文结构安排本论文共有六章。结构安排如下:第一章:对游戏现状和发展前景、项目的研究目的和意义进行了简要介绍。第二章:对此项目的可行性分析,包括技术、经济、操作三个方面,并做出总结。第三章:对游戏的概要设计和游戏的主要功能进行介绍。第四章:对游戏的类的详细阐述,介绍了游戏功能的具体实现,对游戏架构的各个部分与其相对于的代码部分进行分

10、析。第五章:对游戏进行测试,包括测试的方法与测试的功能,并对此作出总结。第六章:总结本次项目的实现过程与体会。1.2研究的目的与意义随着智能化电子产品的普及,游戏产业已成为经济市场中增长速度最快的热点,近几年来,Android 平台游戏以及Web的网页游戏迅速发展,已经成为带动游戏产业发展的中坚力量。10知识经济的核心内容之一是创意经济,创意经济也是知识经济的重要表现形式,可以说,没有创意,就没有新经济。作为文化创意产业中重要的部分,游戏设计是商品生产与文化艺术创意的一次碰撞下的产物,在中国的经济发展中,游戏产业占据着十分重要的的地位。截至2015年上半年,中国游戏市场实际销售收入达到605.

11、1亿元人民币,同比增长21.9%。2国内的首款自主研发的3d游戏是在2003年,相对于美国最早的第一人称3d射击游戏重返德军总部晚了十年左右,虽然目前国内3d技术日益加强,但毕竟起步较晚,与国外存在着不小的差距,只有少数大型的互联网公司能够从设计理念出发并应用到开发制作上,其余大部分游戏公司和游戏开发者依旧使用国外的游戏引擎,比较出名的有:虚幻引擎、寒霜引擎以及Unity3d引擎,要想开发一款优秀的游戏,人工智能必不可少。1不过,随着智能化设备的快速普及,现阶段国内的游戏市场竞争很激烈,尤其是移动端,自2017年国内移动游戏市场进入黄金时代以来,游戏APP从种类到数量皆呈现爆发式增长,玩家人数

12、与日俱增,涵盖的玩家年龄段也越来越广。2可行性研究2.1技术可行性本设计基于Unity 3d引擎,采用C#开发脚本,C#是由Microsoft公司开发的一种面向对象的编程语言。作为使用.NET Framework的Windows和Web开发人员无可争议的首选语言,C#语言提供了Visual Basic的简单易用性,同时也提供了Java和C+语言的灵活性和强大功能。4目前比较流行的开发引擎有Unity 3d、Cocos 2d-x、Unreal Engine 3等。虚幻3引擎具有高优先级的动态演示管道和其他演示效果,但对多核CPU的支持很差,而且大多数插件都必须付费,而且国内这方面的学习资源也较少

13、,这对学生个人开发群体来说不是很合适。但是Cocos 2d-x是为2T游戏开发的游戏引擎,不适合这种设计。与前两个相比,Unity3d在技术支持和技术可见性方面更适合像作者这样的学生开发人员。自从2012年Unity正式进入中国市场以来,中国越来越多的业内知名企业开始将选择Unity引擎开发作为其移动端战略部署的重要组成部分,使用Unity开发的诸多游戏都在市场上大方异彩。6Unity3d是一个综合性的游戏开发工具,用于创建交互式多媒体内容,如3D视频、视频、实时3D动画等。同时,unity3d拥有免费的开发资源和免费的强大插件,非常适合常用的3D类应用。如果你正在为寻找合适的开发工具而焦头烂

14、额时,不妨尝试一下Unity3D这个引擎。如果需要制作2D/3D的游戏产品,那么它是一个不可多得的游戏引擎工具;如果需要制作AAA级画质的数字交互产品,那么它可以为你提供高效优质的渲染效果。5从上可以看出,unity3d加入可视化引擎视图为初级的开发者提供了很大的方便,由于其能够将项目发布于多平台,它使开发者能够更加关注游戏技术的研究,而不是代码平台兼容性上需要时间问题的问题。综上所述,本设计基于一个使用C#脚本开发的unity3d引擎,在技术上是可行的。2.2经济可行性此次塔防游戏设计是单机游戏,开发引擎使用的是Unity3d,使用的是免费的个人版,将游戏打包至PC或手机端上即可游玩。此次设

15、计的开发是独立开发,开发人员是笔者,没有团队上的开销,游戏所投入的成本很低,主要集中在游戏资源(如模型、材质)的收集以及游戏本体的开发。Unity是一款标准的商业游戏引擎,而商业引擎的主要特点有收费、封闭源码和功能强大。关于收费情况,Unity的使用费用非常昂贵,最便宜的普通版许可证也需要400美元,加强版本为1500美元。当然许可证的版本不同,引擎支持的功能也就截然不同。具有加强版许可证的引擎的很多强大功能是有普通版许可证的引擎所不具备的。但是从学习的角度来说,无须购买许可证同样可以进行,因为许可证更大的用处在于游戏制作完成后的打包与发布,不购买许可证制作的游戏是无法发售的,不过,单就学习而

16、言,我们完全无须购买许可证,选择免费的Unity即可。7综上所述,本次设计在经济上可行。2.3操作可行性此次塔防游戏在操作界面采用极简的风格,操作十分的简易明了,unity3d引擎为游戏界面的设计提供了良好的设计平台。游戏里所使用的图标如炮塔的图标皆取自炮塔本身使用的模型的贴图,在配合上与游戏界面风格相似的文本文字,游戏整体的风格是连贯一致的,玩家对游戏的操作仅仅只需点击或放大缩小,加上本次游戏规则采用传统塔防的游戏机制,因此玩家能够迅速掌握游戏要领,轻松便捷的畅游。综上所述,本次设计在操作上可行。2.4总结本次塔防游戏的设计,在技术层面、经济层面以及操作层面三个层面上看,都具有高度可行性。U

17、nity3D引擎给此次设计提供了技术层面的支持,C#语言是脚本功能运行的保障;单机小游戏的设计规模使得个人独立开发成为可能,开发成本很低,经济上没有太大问题;而简单的操作和极简的风格在如今电脑、智能机普及的当下掌握起来不过几分钟,经典的塔防模式也降低了游戏门槛和学习成本。综合以上论述表明,本次设计在基于Unity3D引擎下,使用C#脚本开发一款经典塔防类的游戏,是可行的。3游戏概要设计3.1总体概述游戏题材:经典塔防游戏游戏类别:策略类游戏游戏玩法:颜色不同的圆球形状的敌人从地图的蓝色正方体中进入地图,经过预设的黑色道路行进,进入地图的粉色正方体(即目的地),玩家需要在这些敌人行进的路线附近建

18、造各种类型的防御塔,用以攻击经过的敌人,在敌人进入粉色正方体前将敌人击杀。敌人有若干进攻波次,在每一波过后敌人都会变得更强,玩家也需要通过建造更多的防御塔或升级已有的防御塔来加强防御力。当进入粉色正方体的敌人到达一定数量后,游戏会失败。要想通关,玩家需顶住敌人的进攻,直到最后一波敌人被歼灭。3.2游戏功能设计本设计的主要功能包括:游戏地图与敌人的行进路线、各种各样的敌人以及敌人的生成器、各种防御塔、资金的显示以及各种特效。3.2.1地图与路线游戏地图的构成要素包括:可建造地块、敌人的行进路线、敌人生成位置、敌人进攻目的地。图3.1游戏场景图此图显示的视角即为游戏内摄像机的位置,其中,白色方格为

19、可建造地块,即防御塔建造的位置,黑色道路为敌人行进路线,蓝色正方体为敌人生成器,游戏内的敌人均从此处生成并以此为行进路线的起点,而红色正方体即为敌人行进的终点,当敌人到达此处时,游戏宣布失败。3.2.2敌人此次共设计了五种敌人,外形皆以圆球形状,以不同颜色分为普通型(红色)、速度型(橙色)、极速型(黄色)、加强型(绿色)、Boss(蓝色)。敌人最重要的属性,是敌人的血量、生成速度以及其行进速度。 图3.2各种类型的敌人示意图以普通型敌人为标准,速度型敌人在行进速度和生成速度上有较强的提升,但同时弱化了它的生命值;而极速型敌人则更进一步的作此改变,因此,极速型敌人是游戏里行进速度最快、生成位置最

20、密集的敌人,同时也是游戏里最脆弱的敌人,选用攻速快伤害低的机枪塔能对其进行有效的打击;而加强型敌人是敌人中的精英,在速度上只有较小的提升,但在血量上有极大的提升,与Boss不同的是,Boss只是单独出现,但加强型敌人是成群结对的,不过,其弱点于生成时间较慢,导致加强型敌人之间的间隔较大,阵型散乱,使用攻速慢伤害高的重炮塔,配合上能够造成减速效果的激光塔是打败加强型敌人的关键。Boss,游戏最后的敌人,打败它是游戏通关的关键。Boss的最大的特点就是其无与伦比的血量,但其行进速度是敌人中最慢的,且只单一出现,因此只需集中火力,尽量多的建造重炮塔配合激光塔,少建造机枪塔,尽可能加大对其造成的伤害。

21、打败Boss后,游戏宣布胜利。3.2.3防御塔此次设计中共有三种类型的防御塔,分别为机枪塔、重炮塔以及激光塔。防御塔的属性有:使用的武器系统、攻击伤害、攻击频率、子弹飞行速度、攻击范围、特殊效果。图3.3机枪塔示意图 图3.4升级版机枪塔示意图 图3.5机枪塔购买图标机枪塔是游戏中最廉价的防御塔,使用的武器系统是炮弹系统,虽然伤害不高,但其攻击频率高、子弹飞行速度快的特点能够有效对付移动迅速且血量低的敌人,而其廉价的特点能使其被大量建造,弥补其伤害低、攻击范围小的缺陷,将其放置在各个点位能对集群的敌人进行有效的拦截。升级版机枪塔在原基础上大幅提升了其攻击频率,对攻击伤害、攻击范围也有小幅的提升

22、。 图3.6重炮塔示意图 图3.7升级版重炮塔示意图 图3.8重炮塔购买图标重炮塔是游戏中伤害最高、攻击范围最大的防御塔,使用的武器系统也是炮弹系统,其巨额的攻击伤害所付出的代价是其攻击频率的低下,巨大的炮弹飞行的速度也受到了影响,适合攻击移动速度较慢、生命值较高且单独行动或阵型间隔较大的敌人。升级版重炮塔在原基础上大幅提升攻击伤害和攻击范围,攻击频率不变。 图3.9激光塔示意图 图3.10升级版激光塔示意图 图3.11激光塔示意图激光塔是游戏中一种特殊的防御塔,它搭载了不同于机枪塔和重炮塔的武器系统激光武器系统,该武器最大的特点在于它造成伤害的方式不是瞬时的,而是持续性的,且能够对正在攻击的

23、目标造成减速效果,适合对付单独行动的或阵型间隔较大的敌人,不过,由于价格昂贵,且杀伤力较于重炮塔还是稍显不足,不适合大量建造,只需在几个关键路口建造即可,主要用于降低敌人的行进速度。升级版激光塔在原基础上提升了攻击伤害与攻击范围,着重增强其对敌人的减速能力。3.2.4武器系统在此次炮弹系统的设计中,共分为两大武器系统,分别是炮弹武器系统以及激光武器系统。 图3.12重炮塔开火示意图 图3.13激光塔开火示意图炮弹武器系统是瞬时伤害的攻击系统,有攻击频率的属性,机枪塔与重炮塔皆搭载此攻击系统,是主要的武器系统。激光武器系统是持续伤害的攻击系统,专为激光塔而设计,采用激光射线代替子弹和炮弹,能对目

24、标持续造成伤害,最大的特点是其拥有减速能力,提供战术上的支持。3.2.5特效设计在特效设计方面,主要包括三大类:动画类特效、粒子类特效、线渲染类特效。动画类特效主要应用于游戏开始界面、玩家资金提示、防御塔升级面板、游戏结束界面等。粒子类特效主要应用于防御塔的建造、炮弹武器系统、击杀敌人、升级和拆除防御塔等。线渲染类特效专为激光武器系统服务,是实现激光武器系统的构成要素。3.2.6各种UI此次设计的UI包括:游戏初始界面、游戏结束界面、升级面板、玩家资金面板、防御塔购买面板。图3.14游戏开始界面示意图图3.15游戏内场景示意图 图3.16游戏结束界面示意图4游戏具体实现4.1程序实现4.1.1

25、建造管理模块类名:BuildManager说明:控制游戏内建造防御塔、升级防御塔、拆除防御塔相关的操作。方法:void ChangeMoney()、void Start()、void Update()、public void OnLaserTurretSelected()、public void OnMissileTurretSelected()、public void OnStandarTurretSelected()、void ShowUpgradeUI()、IEnumerator HideUpgradeUI()、public void OnUpgradeButtonDown()、publ

26、ic void OnDestroyButtonDown()。分析:void ChangeMoney()记录了玩家资金的变化;void Start()用于开启与防御塔升级界面相关的状态机;void Update()用于控制防御塔的建造、升级、拆操作;public void OnLaserTurretSelected()用于判断激光塔是否被鼠标选择;public void OnMissileTurretSelected()用于判断重炮塔是否被鼠标选择;public void OnStandarTurretSelected()用于判断机枪塔是否被鼠标选择;void ShowUpgradeUI()用于

27、显示防御塔的升级面板;IEnumerator HideUpgradeUI()用携程的方式来读取升级面板的显示与隐藏的变化并控制其隐藏;public void OnUpgradeButtonDown()鼠标监听升级按钮的点击;public void OnDestroyButtonDown()鼠标监听拆除按钮的点击。4.1.2游戏进程管理模块类名:GameManager说明:控制游戏内菜单、场景切换、游戏流程切换。方法:public void Awake()、public void Win()、public void Failded()、public void OnButtonReplay()、p

28、ublic void OnButtonMenu()。分析:public void Awake()控制游戏开始时的各种操作如启动敌人生成器;public void Win()控制游戏胜利时的UI显示与文本;public void Failded()控制游戏失败时的UI显示与文本;public void OnButtonReplay()监听游戏结束时“重玩”按钮是否被点击;public void OnButtonMenu()监听游戏结束时“菜单”按钮是否被点击。4.1.3敌人模块类名:Enemy说明:记录敌人各种属性,包括行进行为、承受伤害以及死亡销毁。方法:void Start ()、void

29、Update ()、void Move()、void ReachDestination()、void OnDestroy()、public void TakeDamage()、void Die()。分析:void Start ()初始化敌人属性、控制敌人开始从起点移动;void Update ()更新敌人行进状态;void Move()控制敌人移动;void ReachDestination()用于销毁到达终点的敌人,同时宣布游戏失败;public void TakeDamage()控制记录敌人承受的伤害,并作出承伤行为;void Die()敌人血量为0时销毁敌人。4.1.4敌人生成器模块类名

30、:EnemySpawner说明:控制敌人在起点生成、每一波次的生成时间、生成的敌人类型和数量。方法:void Start()、public void Stop()、IEnumerator SpawnEnemy()。分析:void Start()用于启动敌人生成器;public void Stop()停止敌人的生成(当游戏失败时);IEnumerator SpawnEnemy()用携程控制每一波生成的敌人,判断条件以作出是否进行下一波敌人的进攻,敌人全部被消灭时宣布游戏胜利。4.1.5游戏菜单模块类名:GameMenu说明:控制游戏的菜单、场景加载以及其相关事件。方法:public void O

31、nstartGame()、public void OnExitGame()。分析:public void OnstartGame()用于加载游戏开始时进入游戏内的场景;public void OnExitGame()控制游戏暂停与退出。4.1.6可建造地块模块类名:MapCube说明:控制游戏的菜单、场景加载以及其相关事件。方法:void Start()、public void BuildTurret ()、public void UpgradeTurret()、public void DestroyTurret()、void OnMouseOver()、void OnMouseExit()。

32、 分析:void Start()初始化地块;public void BuildTurret ()将建造防御塔时的特效实例化并控制其显示时间;public void UpgradeTurret()用于判断当前地块能否升级防御塔,并控制其升级行为和相关特效;public void DestroyTurret()用于判断当前地块能否拆除防御塔,并控制其拆除行为和相关特效;void OnMouseOver()监听鼠标悬停于地块上;void OnMouseExit()监听鼠标悬停离开地块。4.1.7防御塔模块类名:StandardTurret说明:控制防御塔的攻击行为。方法:void OnTriggerEnter()、void OnTriggerExit()、void Start()、void Update()、void Attack()、

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1