《基于Unity3D的AVG卡牌游戏设计与实现.doc》由会员分享,可在线阅读,更多相关《基于Unity3D的AVG卡牌游戏设计与实现.doc(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 沈阳城市学院毕业设计(论文)基于Unity3D的AVG卡牌游戏设计与实现专 业: 计算机科学与技术 班 级:2016级计算机科学与技术2班学 号: 161006206 姓 名: 党梓豪 指导教师: 黄志宇 苏畅 答辩日期: 年 月 日期填写下本科生毕业论文(设计)独创性声明本人声明所呈交的毕业论文(设计)是本人在导师指导下进行的研究工作及取得的研究成果,除了文中特别加以标注和致谢的地方外,本论文中没有抄袭他人研究成果和伪造数据等行为。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。论文(设计)作者签名: 日期: 本科生毕业论文(设计)使用授权声明沈阳城市学院有权
2、保留并向国家有关部门或机构送交毕业论文(设计)的复印件和磁盘,允许毕业论文(设计)被查阅和借阅。本人授权沈阳城市学院可以将本科毕业论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他复印手段保存、汇编毕业论文(设计)。论文(设计)作者签名: 日期: 指 导 教 师 签 名: 日期: 目 录摘 要IAbstractII引 言11 相关技术31.1 C#31.2 Unity3D31.3 UGUI31.4 XML41.5 原型设计模式41.6 本章小结42 系统分析52.1 用户需求52.2 功能需求52.3 非功能需求62.4 本章小结63 系统设计73.1 系统该要设计7
3、3.2 系统详细设计73.2.2 数据逻辑结构设计103.4 UI设计原则113.5 本章小结124 系统实现134.1 开发环境134.2 开发规范134.3 数据存储和读取实现134.4 核心功能实现144.5 本章小结165 系统测试175.1 测试计划175.2 游戏测试175.4 本章小结17结 论19致 谢20参考文献213.2.1没有,3.3也没有沈阳城市学院毕业设计(论文)摘 要21世纪随着社会飞速进步和科技的发展,对于工作和学习压力越来越大,对于缓解压力的需求逐渐增多,但是大多数人的时间碎片化,需要简单,快速的活动来放松身心,这就使得游戏开发被人们所需要。基于社会需求,本项目
4、针对休闲新颖的玩法开发了一款AVG卡牌游戏。通过对市场需求的分析以及行业现状的调研。本项目运用了Unity引擎进行游戏开发,采用轻量级UI消息框架,用于UI之间的通信,解决了一对多的通信问题。使用管理器设计模式+原型设计模式,使游戏代码和数据更加干净整洁,更易于控制和管理。使用了XML可标记语言进行数据的读取和存储,该语言特点是方便快捷的快速使用。使用可UGUI进行游戏页面的搭建和游戏数据的可视化显示,UGUI是目前Unity引擎主流的UI组件,组件自身功能较为成熟,不需要过多的考虑功能的设计,能够满足大部分显示的需求本项目经过测试后,基本实现预期功能,能够体现完整的游戏性,展现了AVG的特点
5、,添加了Roguelike元素以后,游戏不会因为重复体验而带来枯燥的感觉。项目本身采用的框架设计模式,后续继续开发拓展新功能的难度大大降低。关键词:AVG卡牌; Unity3D引擎; RoguelikeI沈阳城市学院毕业设计(论文)AbstractIn the 21st century, with the rapid progress of society and the development of science and technology, the pressure on work and study is increasing, and the demand for relievin
6、g the pressure is increasing. However, most peoples time is fragmented, and they need simple and rapid activities to relax their body and mind. Therefore, game development is needed by people.Based on social needs, this project develops an AVG card game for leisure and novel gameplay.Through the ana
7、lysis of market demand and the investigation of the current situation of the industry.This project USES Unity engine for game development, and USES a lightweight UI message framework for communication between uis to solve the one-to-many communication problem.Use the manager design mode + prototype
8、design mode to make the game code and data cleaner and easier to control and manage.XML markup language is used for data reading and storage, which is characterized by convenient and quick use.UGUI can be used to build game pages and visually display game data. UGUI is the mainstream UI component of
9、 Unity engine at present, and its functions are relatively mature, so it does not need to consider the lack of functions too much, and it can meet most display requirementsAfter the test of this project, the expected functions are basically realized, which can reflect the complete gameplay. The feat
10、ures of AVG are shown and the Roguelike element is added, so that the game will not bring a boring feeling due to repeated experience.The framework and design patterns adopted by the project itself make it much easier to continue developing and extending new features.nd can meet the learning and com
11、munication needs of most users.Keywords: AVG Card; Unity; RoguelikeII引 言现在市面上的游戏类型种类繁多,玩家的喜好的游戏类型不尽相同,重口难调。卡牌游戏是一个总能被人们津津乐道的游戏类型,因为卡牌游戏本身是一个需要经过思考过程的博弈过程,不需要高强度的操作就能完成。这也满足了休闲游戏的特点。为了满足休闲游戏的特点,让游戏能够轻松进行,并且不枯燥的重复进行,需要有足够游戏环节进行支持,卡牌游戏的思考过程,以及AVG1冒险性的体验感,同时还添加了Roguelike的元素1,保证了游戏的特点,并将其升华。本项目的核心系统主要分为以
12、下几个部分:角色模块:角色模块是游戏的基础,玩家在进入游戏的时候,会选择一名角色,从而获得这个角色的基础卡组,每个角色对应的基础卡组和后续收集到的卡牌都不会相同,每种角色的核心玩法都不会相同,能够给玩家带来不同的体验卡牌模块:卡牌游戏为游戏的主要核心部分,每张卡牌会有自己特点,卡牌会有各类的属性数值,玩家在游戏过程中会获取不同的卡牌,来组成自己的卡组,卡组中的卡牌是玩家在冒险过程中的主要手段,充分利用这些卡牌为自己的战斗中获取优势,从而最终赢得胜利。地图模块:地图模块是体现Roguelike元素的主要体现,玩家在选择完角色之后,会获取一张地图,这份地图中会有各种图标,每种图标代表的是一个类型的
13、房间。因为路线的不可后退性,玩家应当思考需要行进的路线来决定该进入哪个房间,这会影响到后续的游戏。战斗模块:本游戏的战斗采用的回合制战斗,在进入了可以战斗的房间以后,玩家会和敌人遭遇,不同的敌人的行动规则不同,会在敌人的角色上方进行提示,玩家在回合开始会有相应的行动点,行动点有限,行动点所对应的是卡牌上的消耗。玩家应该根据提示来决定这一回合需要打出的卡牌,同时玩家应该在这其中思考如何在下一回合开始时能获取优势。在战斗过程中,某一方先死亡,结束战斗。在玩家取得这一场房间模块:在整个地图中,会存在不同的房间,不同的房间,玩家所经历的事件也不会相同,在战斗房间,玩家和敌人遭遇,展开战斗。在商店房间,
14、玩家可以购买,相应的卡牌和使用移除卡牌服务。在宝箱房间,玩家可以直接获取奖励,提升自身。在休息处,玩家可以选择回复生命值或者提升卡牌的品质增加战斗力。本文的总体结构为第1章相关技术综述,该部分用于介绍游戏开发所使用的框架,以及游戏开发所使用到的相关技术等;第2章游戏系统分析,该部分将对游戏内容的需求进行具体的详细分析,策划其游戏目标、研究其可行性以及游戏的需求分析工作;第3章系统设计,从总体上确定游戏的设计方案、组成游戏系统的模块以及模块之间的关系。同时要进行本地数据存储设计、以及确定每个模块应该如何被详细实现,包括游戏过程设计;第4章系统实现,阐述游戏的具体实现过程,按照顺序演示核心功能的核
15、心代码,并对其进行解释说明;第5章游戏测试,该部分将介绍完成项目功能实现后如何开展测试工作的测试计划、测试用例,性能测试等。1 相关技术本项目采用C#作为开发语言。使用了Unity引擎作为游戏开发引擎3。UI搭建和显示使用了UGUI。数据读取和存储使用了可标记XML语言。代码架构使用了管理器设计模式4和原型设计模式5。1.1 C#C#作为微软公司推出的一种面向对象的语言与JAVA相似,运行于.NET Framework和.NET Core(完全开源,跨平台)之上的高级程序设计语言6。C#是微软公司研究院的新的成果,是由C和C+衍生出来的面向对象的编程语言,在继承C和C+强大的功能的同时也去除了
16、他们复杂且多重继承的特性7,C#与开发环境很完善,功能齐全,并且支持匿名类,匿名委托,泛型的特点,可以极大的提高程序员的开发效率和提升逻辑的清晰度8,使得C#成为当今世界变成语言的不可或缺的一部分。1.2 Unity3DUnity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎9。Unity在2009年,注册人数已经高达3.5万人,2010年开始支持Android,继续扩张影响力。2011年有陆续支持PSP等掌上电子产品,2013支持IOS,跨平台能力很难让人挑
17、剔,一套代码只需要换相应的开发API,做支持,SDK介入就可移植手机端,现在更是涉猎与VR,AR,虚拟仿真等领域并取得了不错的成就10。缺点在于其渲染能力相对于UE4而言,稍微逊色一些。Unity是目前全球最普遍的游戏引擎11,能够创建实时、可视化的2D和3D动画、 游戏,被誉为3D手游的传奇,孕育了成千上万款高质、超酷炫的神作:炉石传说神庙逃亡2我叫MT2。1.3 UGUIUGUI系统是从Unity 4.6开始,被集成到Unity的编辑器中Unity官方给这个新的UI系统赋予的标签是:灵活,快速和可视化12!简单来说对于开发者而言就是有四个优点:效率高效果好,易于使用,扩展,以及与Unity
18、的兼容性高13。在不使用任何代码的前提下,就可以简单快速在游戏中建立其一套UI界面,这在过去是绝对不可想的,但是新的UI系统确实做到了这一点因为Unity预定义了很多常见的组件,它们以“游戏对象”的形式存在于游戏场景中。1.4 XML 可扩展标记语言(eXtensibleMarkup Language,简称XML),是一种标记语言14。标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,既可以选择国际通用的标记语言,比如HTML,也可以使用像XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性15。1.5 原型设计模式原型(Proto
19、type)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象16。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。1.6 本章小结以上介绍的技术均为本项目所使用的技术,包括Unity3D引擎,UGUI,XML,原型设计模式,管理器设计模式。从游戏页面显示到数据存储,都有详细描述。本章对于游戏开发所使用到的技术,都有了详细描述。2 系统分析系统分析主要分为2个部分,功能需求和非功能需求。本项目主要的模块有:人物角色模块,战斗模块,游戏房间模块,卡牌模块,UI搭建模块,场景搭建,地图模块。2.1 用户
20、需求在日常工作和学习之余,总会需要放松身心,休闲益智类游戏带给人们简单轻松的快乐。卡牌游戏是休闲游戏的代表之一,其中有相当多的博弈过程,取代了高强度的操作,只需要点击就可以带来互动性17。AVG冒险题材,玩家会扮演一个角色,从角色自身触发带入到游戏当中,去经历游戏世界里发生的种种。但是卡牌游戏的重复性是一个致命的缺点,所以如果能有一些随机的元素添加到AVG卡牌中,这会使得这一游戏变幻莫测,给人带来特别的体验。2.2 功能需求根据用户的需求分析出游戏包含的系统,主要的模块有:人物角色模块,战斗模块,游戏房间模块,卡牌模块,UI搭建模块,场景搭建,地图模块。主菜单UI模块:进入游戏后需要有相应的主
21、菜单,主菜单需要有基本的游戏风格,展示游戏的标题,可操作的游戏界面,在菜单上的文字可以展示相应的功能,点击之后有相应的展示。可以适当装饰主菜单。人物角色模块:人物角色模块应当展示相应的人物信息,有提供给玩家选择的角色,给角色添加相应的说明,可以返回主菜单的按钮以及进入游戏的按钮。角色模块需要有相应数据支持,每个角色会对应不同的卡牌3。卡牌模块:每个玩家在选择完角色之后会获得一定数量的基础卡牌,卡牌上会有相应的说明,基础卡牌分为三种类型,分别是攻击类卡牌、技能类卡牌、能力类卡牌,每种卡牌会有不同的品质,卡牌上能显示对应的功能和消耗。地图模块:在选择完角色后,给玩家提供地图使玩家能够进行游戏,每种
22、地图图标对应了不同的房间类型,只有同一层的房间能够提供给玩家点击。战斗模块:玩家进图地图后,会出现在游戏场景中,玩家在左边,敌人在右边,战斗开始后,给玩家发规定数量的卡片,玩家应当应当根据怪物行动提示和自己的体力消耗来决定打出的卡牌。直到一方没有剩余的生命值,这场游戏结束。UI模块:在游戏的上方,会提示游戏玩家名称、使用角色的名称,当前血量和最大血量,可以查看地图,可以查看自己所有拥有的卡牌,可以打开系统设置面板。场景模块:使用提前准备好的图片素材,对这些图片素材进行拼接,拼接完成之后,添加相应的光照和相机特效。2.3 非功能需求游戏流程基本完善,响应时间符合预期,游戏能够在多数设备上流畅运行
23、即可。2.4 本章小结本章介绍了需求设计, 确认了整个游戏的核心玩法,通过游戏风格和玩法特色提出了游戏本身应该具备的系统及功能。3 系统设计系统设计可分为概要设计和详细设计两个阶段。系统的概要设计主要是从总体上确定系统的设计方案、组成系统的模块以及模块之间的关系,同时进行数据设计、实现计划和测试计划。详细设计的主要目的是确定每个系统应该如何被详细实现,包括游戏过程设计等等。3.1 系统该要设计对于整个游戏而言,需要一个整体框架,本项目所使用到的整体框架为管理+数据包设计模式,类比MVC设计模式18。在游戏中MVC设计模式并不能广泛用于整个游戏,在使用过程会显得十分生硬。本项目所使用到的设计模式
24、参考PureMVC框架19。游戏系统之间会存在单独的管理器,管理这一类别的对象。3.2 系统详细设计玩家在进入游戏后如图3.1所示图3.1玩家开始游戏 在开始游戏后,玩家会先选择角色,选择角色时,展示角色相应的生命值,金钱和说明,在选择完角色后,进入第一个场景与NPC对话,选择合适的Buff开始进行游戏,可以查看生成的地图。在选择路线时如图3.2所示图3.2玩家选择路线玩家根据地图展示的路线选择合适的房间进入,会显示相应的敌人,敌人会显示数量和种类,提示玩家这一回合的行动模式,玩家会被战斗系统从手中已有的卡牌中获取一定数量的卡牌。玩家需要根据怪物的行动模式和手中已有的卡牌以及行动点来决定打出的
25、卡牌,卡牌在打出后生效并影响敌人。在玩家点击回合结束后,战斗系统回收玩家手中剩余卡牌,轮到敌人行动。在敌人的行动结束后,这一回合结束,玩家回复行动点,重新在玩家的卡组中抽取卡牌,当抽卡组中没有卡牌时,会从弃牌组中重新获取所有卡牌,并进行洗牌。玩家在进入商店时候如图3.3图3.3玩家进入商店玩家在进入商店后,可以通过战斗获得的金钱来购买卡牌提升自己,也可以从商店中移除不需要的卡牌。玩家在进入休息处的时如图3.4图3.4玩家进入休息处玩家在进入休息处时可以在休息处休息恢复血量,或者选择锻造升级一张卡牌,在点击升级卡牌时,升级系统会展示相应的升级后的数据来提供给玩家参考。3.2.2 数据逻辑结构设计
26、游戏角色基本信息,这是玩家选择一个角色后所要展示的信息,包括角色名称、初始金币、角色描述、角色类型、最大血量和当前血量表大些,根据窗口自动调整表格其它表格自行修改。表3.1角色信息表字段名数据类型描述NameString角色名CoinInt角色金币DescriptionString角色描述TypeEnum角色类型MaxHpString最大血量卡牌的基本信息,每张卡牌都有自己的信息,这些信息用于描述这张卡牌的用途,卡牌的地图用于显示卡牌的图片,卡牌路径用于加载卡牌图片的路径。卡牌ID代表这一卡牌自身索引。卡牌花费用于在一回合行动中所要花费的行动点数。卡牌名是卡牌记的中文名称。对应的游戏对象是卡牌
27、数据在被加载。目标类型是判断使用的目标种类。初始卡牌数值是卡牌未升级时所要展示的数值。当前使用数据是记录卡牌被使用时产生的数值。升级卡牌的数值是指,升级过后的数值。卡牌是否升级是标注卡牌是否被升级过。卡片描述用于解释说明卡牌的用于以及特性。使用者是表明卡牌使用过程中是谁在使用卡牌。卡牌特性描述是在使用卡牌时,对于特性的描述。卡牌类型是这区别卡牌的3种类型之一有三种,分别是:。卡牌的基础攻击是当前卡牌的攻击数值。卡牌价格是在商店中出售卡牌时的价格。表3.2 卡牌表字段名数据类型描述ImageIndexint卡片底图ImagePathstring卡片路径IDintIDCostint卡牌耗费Name
28、string卡牌名GOobject对应游戏对象TargetTypeenum使用目标类型InitValueList初始卡牌数值CurrentValueList当前使用数值UpgradeValueList升级卡牌数值Upgradedbool卡牌是否升级表3.3 敌人表字段名数据类型描述IDint怪物IDNamestring怪物名字MaxHealthint怪物血量Healthint当前血量BaseAttackint怪物基础攻击DialogOffsetstring对话框偏移PrefabPathstring怪物路径Singlebool能否能单独出现MonsterTypeenum怪物类型Behaviour
29、DescriptionList行为描述BehaviourSequenceobject行为队列BehaviourDialogList行为语言3.4 UI设计原则(1)类需要与机器交互,所以交互有关界面设计都是UI设计,仅游戏而言,玩家的上手快慢与游戏UI设计有直接的关系,UI设计就非常好,玩家可以快速简单高效的进行游戏,不会因为操作过于繁琐而忘记,同时提供一目了然的选项,让玩家直观的去操作,是非常重要的。(2)一个UI的好坏更加注重的是可扩展性,游戏是需要迭代更新的,没有一个合理的框架来进行管理为拓展提供条件是一颗非常不可取的行为20,当UI发生改变,其功能发生变化,不适用框架,会造成棘手的现象
30、,甚至之能推翻重做。这样非常不便于更新,对于如今对数据更新换代告诉发展的趋势而言,没有框架作为对扩展的支持,它并不能被快节奏的现代生活所接受21。(3) UI功能的稳定性,在UI结构布局确定以后,必须对整体架构保持稳定,高效才可进行具体开发 ,开心厨房这款游戏,菜单的读取没有一个好的菜单排列,并顺序读取内容,是非常糟糕的,所以UI需要跟据数据来展示不同的内容。(4)UI的可复用性。这便是框架的作用,既可以节省开发成本,还能提高自身工作效率,良好的可复用性是一个合格系统所用应具有的性质之一22。3.5 本章小结本章介绍系统的设计和数据的设计,在设计系统的时候会根据系统的功能而考虑适当的设计模式配
31、合,数据逻辑设计主要配合功能实现的设计,为系统设计提供足够的数据支持。4 系统实现本系统在window10操作系统,运用Unity引擎进行开发,运用简单易于读取的json作为数据支持,通过C#语言完成整个游戏,游戏整体。本系统特点在于游戏性,以及复杂的功能逻辑。4.1 开发环境本系统使用了Windows 10 企业版 64-bit操作系统,该操作系统为目前主流操作系统,界面简约好看,操作不复杂,操作环境好。本系统开发环境为CPU即Intel(R) Core(TM) i5-6300HQ CPU 2.30GHz,内存为8GB,硬盘即256G SSD,开发引擎为Unity3D2017.4.20f2;
32、本项目的代码编写工具为Visual Studio2019。4.2 开发规范代码的规范性和一致性使团队协作开发速度得到了提升,同时也提高开发者对代码理解的清晰程度和改修代码的难易程度。代码的程序结构以及命名风格是开发系统时的重要环节,决定一个项目是否成立的关键一步23。命名方法为大驼峰。方法命名为大驼峰,例如ExampleMethod()。脚本变量和属性命名方法为小驼峰,例如myVariable。4.3 数据存储和读取实现XML可标记语言来进行数据的存储,利用System.XML进行数据的操作。根据指定路径加载到内存中。通过API加载所有XML文件信息,遍历节点获取数据,并分类保存24。XML存
33、储数据主要通过文本的形式,树型结构。在根节点下可以延伸子节点,在子节点中,存储子节点的属性。子节点可以嵌套子节点,卡牌特性数据,如属性ID,属性名,页面呈现时颜色,属性描述等,XML结果如下展示所示: 卡牌特性加载过程,获取到XML文件路径,声明一个存储数据的容器,声明一个XML文件对象实例,声明XML读取规则对象实例,更具规则实例读取XML文件对象。从节点和属性中获取需要保存的数据并存储。 展示:/ 4.4 核心功能实现如图4.1所示为游戏主菜单界面,主菜单显示了游戏的标题,标题后有可以重复滚动云做装饰。这一场景是作为游戏的初始场景,界面如图4.1所示。该功能的核心功能如下所示,详细参考附录
34、1主菜单实现类。 图4.1 游戏主菜单界面 界面设计主要利用了Unity3D引擎的UGUI,背景中的云彩使用了重置RectTransf的锚点位置,利用锚点的重置,达到了一个循环的效果,主要组件有Text组件,Image组件和Button组件,在这些组件中添加相应的回调方法,来实现每个组件的具体功能。而UI在很对时候是一个多对一的关系,所以在需要有多个回调的时候,可以给这个组件添加关心事件,利用关心事件,来实现多对一,本质参考了观察者设计模式的思想,详细参考附录1主菜单实现类。 战斗页面所涉及到的模块较多,最上方的是UI模块,下方是抽卡堆,当前手牌,洗牌堆,中间左边的为玩家角色,右边为敌人角色,
35、两个角色下方显示的是双方的生命值。如图4.2所示为战斗界面,核心代码参考附录2战斗回合管理类。图4.2 战斗模块界面 在进入战斗时,玩家先开始,玩家会从玩家所有卡牌中克隆出一份新的卡组,然后添加到抽卡堆当中,在抽卡堆中随机抽取相应数量的卡牌,添加到玩家持卡卡组中,也就是图片正中区域展示的卡牌,玩家点选卡牌以后,会出现一个箭头,这个箭头是使用了二阶贝塞尔曲线完成的UI。箭头所指的对象,就是卡牌的使用对象,在箭头变为红色以后,就可以使用卡牌。玩家使用卡牌后会实现卡牌相应的效果,并从可行动点中扣除行动点,然后将使用后的卡牌添加到右下角的弃牌堆当中。玩家点击结束会后,回合就转到敌人,敌人会按AI的预先
36、行动和回合数决定这一回合要做什么。在敌人的回合结束以后,就会重新开始一个新的回合。如图4.3为商店界面,在商店中随机出售部分卡牌,并有特价卡牌,右下角为卡牌移除服务可移除卡牌,核心代码如下图向上移动,代码拥号字,Tines new Roman:图4.3 商店模块界面for (int i = 0; i CardPoints.childCount; i+) AllCardPoint.Add(CardPoints.GetChild(i).GetComponent(); for (int i = 0; i RelicsPoints.childCount; i+) AllRelicsPoint.Add(
37、RelicsPoints.GetChild(i).GetComponent(); SetPointEnter(RemovePoint.transform.Find(Card).GetComponent(), OnCardRemoveEnter);SetPointExit(RemovePoint.transform.Find(Card).GetComponent(), OnCardRemoveExit);SetOnClick(RemovePoint.transform.Find(Card).GetComponent(), OnCardRemoveClick); 4.5 本章小结本章主要详细介绍了
38、项目开发阶段的开发环境及编码规范,并列展示了部分核心功能界面,项目的基础功能的实现到这里基本结束。接下来开始对项目进行测试。5 系统测试游戏开发完成后,对整个游戏的玩法以及整体功能进行了测试,在测试过程中没通过表现对游戏源码进行断点调试以及Debug处理,根据各个功能模块做了详细的测试。5.1 测试计划针对整个项目的每一个模块进行测试,在开发过程中,语法错误会被代码编辑器提示,逻辑错误则需要在Unity引擎中进行测试,在Unity的控制台中会提示当前错误的原因,已经脚本运行错误位置,这时就可以根据错误的位置及时进行修改,而还有部分测试会在游戏运行中,没有被Unity引擎所发现的25。这类错误就
39、需要人为的手动调试,应当对游戏的功能进行了详细的测试,以真实反映游戏的功能。5.2 游戏测试表5.1游戏测试表测试项目测试目的测试结果打开游戏游戏是否能够顺利加载正常打开开始界面功能主菜单界面功能是否完整可以顺利进入和退出游戏选择角色进入游戏选择角色进入游戏后游戏初始化是否顺利玩家正常进入游戏游戏初始化正常选择房间进入战斗地图生成无误玩家能够顺利进入地图房间测试项目测试目的测试结果玩家卡牌和敌人交互战斗流程是否完整战斗流程完整,buff属性添加顺利,敌人死亡后顺利进入地图商店房间是否能进入商店,并使用商店功能可以进入商店并使用商店的购买服务和移除卡牌服务奖励房间是否能进入奖励,并获得奖励可以进
40、入奖励房间,并获得奖励休息房间是否能进入休息房间,并使用休息房间功能可以进入休息房间,可以在休息房间获得升级卡牌或回复生命测试项目测试目的测试结果5.4 本章小结本章主要叙述了本系统在检查调试过程中需要完成的工作,主要是介绍该管理系统的测试方法以及需要提前做的准备工作、还有在测试过程中的测试条件以及测试最后所达到的效果,经过系统检查调试使系统更适合用户的需求,更加稳定可靠地运行。结 论通过对Unity游戏引擎脚本编程的了解,完成了对整体游戏的一个设计,想要做一个游戏确实具有很大的挑战,不仅仅是功能实现带来的苦恼,必须要有一颗清醒的头脑去思考出相应的步骤,才可顺利进行下去,这使得整体开发没有想象
41、中的那么顺畅,前期策划以及对整体游戏的思考还需要更加细致的去商讨并进行再三修订,才能在后续写代码,对整体游戏更加明确,提升开发速度。游戏开发不同于软件设计,游戏开发并没有一个整体的框架概念,因为游戏的灵活性,很多时候生搬硬套一套框架反而得不偿失,被框架所束缚住。所以在开发过程中需要灵活应变,条条大路通罗马,也需要筛选,在有限的条件下筛选出和项目最为贴合的框架。设计模式就显得格外重要,大大小小的框架都建立于设计模式上,设计模式和数据结构在游戏整体框架当中显得格外重要,这也会是一个积累的过程。本人在此次毕设结束后,将继续开发该项目,在后续的的开发当中,会添加其他游戏元素,而对于项目本身而言,需要优
42、化的地方还有很多,游戏数据可以更改为使用Excel表格的形式,利用JSON的形式存储在本地,表格的配置更为便捷,JSON的读取效率更好,在战斗AI方面可以引入BehaviorDesigner插件来给敌人做表现,可以更好的管理AI的行为。这次毕业设计使得本人充分认识到了书山有路勤为径,学海无涯苦作舟的道理,各行各业若想在行业中有所称就,就要付出比常人更加对的汗水,提升自己的技能水平,感触良多虽道阻且长,但仍一路前行。致 谢在本次论文设计过程中,感谢学校提供一次这样的学习机会,更加感谢从始至终一直悉心指导并给予帮助的指导教师黄志宇老师和苏畅老师。不论毕业设计还是论文书写阶段研究工作都是在黄志宇老师
43、的细心指导下完成的,每一阶段都会与老师进行有关毕设项目的探讨与论文细节的修改,黄志宇老师总是能够给予我很多建设性的意见,使得受益匪浅。感谢所有授业解惑的老师,如果没有这四年的知识沉淀,相信毕设与论文完成的不会这么顺利,也正是因为这四年,得到了学识与内涵的双重提升,相信这是在校园以外所学不到的。所以感谢学校,感谢学院,更加感谢这一路以来有过如此帮助的老师们。感恩之余,希望各位老师可以对本人完成的毕业设计及论文多加评判与指正。最后,依然要对黄志宇老师的辛勤栽培和指导表示由衷的感谢,同时对学院全体领导及教研室的所有老师表示衷心的感谢,感谢老师们在大学期间的关心及教育。在此向全部老师致以真挚的谢意!最后也要感谢实习单位不管在精神上还是学习指导中给予我的鼓励和鞭策。参考文献1 孔祥龙.Android平台连连看游戏控制逻辑设计与实现J.电脑知识与技术,2017,13(03):206-2082 郗锐.浅谈电子游戏运营模式与机制设计J.电脑知识与技术,2017,13(03):220-2213 玄令岐.基于UE4的迷宫逃生游戏设计J.电子质量,2017(03):42-464 钱俊廷. 手机游戏中卡牌游戏的设计与研究D.长春工业大学,20165 胡劲松. 基于Android平台的智力猜牌游戏设计与开发D.东南大学,2016.6 王勤勤. 休闲益智手游界面