坦克大战论文(正式)_第1页
坦克大战论文(正式)_第2页
坦克大战论文(正式)_第3页
坦克大战论文(正式)_第4页
坦克大战论文(正式)_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

STYLEREF"标题1"第5章结束语第1章绪论1.1选题背景及意义游戏软件业是一个新兴行业,存在着巨大的生存和发展空间,同时它也是一个存在社会争议的行业。

游戏的完整定义可以归纳为:一种由道具和规则构建而成、由人主动参与、有明确目标、在进行过程中包含竞争且富于变化的以娱乐为目的的活动,它与现实世界相互联系而又相互独立,能够体现人们之间的共同经验,能够体现平等与自由的精神。

游戏产业准确地讲应该叫做电子娱乐业,是指基于电子技术、计算机技术、软件技术、网络技术和无线技术的新型娱乐产业,分为单机游戏、网络游戏和无线游戏等几个部分。电子游戏业从诞生至今已经有几十年的时间,可仅仅在这短短的几十年的时间里,它却在发达国家的经济发展中发挥了显著的作用。

游戏软件业从诞生到现在,历经几代的发展,已进入了一个非常成熟的时期。对于我国而言,游戏软件业也有快速的发展,但是因为很多原因阻碍了这个产业的发展,如游戏软件研发人才缺乏,软件开发投入不足;对青少年的负面影响,一些不健康的游戏软件导致了社会对游戏软件的偏见;技术滞后等情况。

坦克大战游戏是一款风靡全球的电视游戏机和掌上游戏机游戏,它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。它看似简单但却变化无穷,令人上瘾。相信大多数用户都还记得为它痴迷得茶不思饭不想的那个坦克大战时代。究其历史,坦克大战最早还是出现在FC机上,现在又重新掀起这股让人沉迷的坦克大战风潮,它的规则简单,容易上手,且游戏过程变化无穷,使用户既能感受到游戏中的乐趣,也给用户提供了一个展现自己高超技艺的场所。这次练习的是在Unity上生成坦克大战游戏。Unity是一个非常好的3D游戏开发软件,Unity3D是由UnityTechnologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似Director,Blendergameengine,TorqueGameBuilder等利用交互的图型化开发环境为首要方式的软件。其编辑器运行在Windows和MacOSX下,可发布游戏至Windows、Mac、Wii、iPhone、Windowsphone8和Android平台。也可以利用Unitywebplayer插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Macwidgets所支持。“千里之行,始于足下”,尤其是在迈出了坦克大战的第一步之后,实际上,已经走进了软件开发,尤其是游戏开发的大门,前面的世界是美丽多彩而又充满挑战的。1.2发展现状坦克大战自推出以来,发展多个版本,并在各个平台都有衍生作品,得到了众多玩家的喜爱。正传系列1980-坦克营(TankBattalion),MSX1985-坦克大战(BattleCity),FC1991-坦克大战(BattleCity),GB1994-导弹坦克(MissileTank),FC1996-坦克大战(BattleCity),SGB2008-3D重制版突击坦克(TankattheGates),PC2009-坦克大战online,网页游戏1.3研究的主要内容与方法1、开发环境选用了unity3d:unity3d的主要特性有层级式的综合开发环境,可视化编辑,详细的属性编辑器和动态的游戏览,开发人员可以在边开发的过程中边看到游戏做出来的效果。2、遇到的问题:在边学边开发的过程中,也遇到了一些问题,子弹射击的方向不是直线的,对坦克的命中率低。3、解决方法:充分利用网络的优点,利用百度,还有各种论坛向网友咨旬,对得到的方法进行尝试,最终得以改进。1.4文档结构安排本论文主要阐述二维平面射击游戏的设计与实现,全文共分为五章:第一章:绪论。介绍项目大致背景及目标。第二章:系统分析与设计。项目需求分析及相关设计。第三章:系统实现。系统主要功能的实现。第四章:系统测试。测试系统的稳定性。第五章:总结。对项目经验的总结与心得体会。第2章系统分析与设计2.1用户需求分析此次项目所开发的坦克大战游戏主要面向:喜欢坦克游戏的玩家喜欢挑战高难度游戏的玩家此外,游戏开发出来是面向玩家的,因此游戏本身需要具备:简单易学运行稳定操作简便2.2游戏规则游戏最终将运行在Windows系统上,其游戏规则主要如下:通过W、A、S、D分别控制坦克进行上、下、左、右的移动点击鼠标左键控制射击玩家只要碰到障碍或被打中即死亡2.3美工需求游戏整体美工需求如下:整体布局清新简洁游戏色调为暖色调游戏中:显示主角、敌机及障碍物左上角显示当前分数显示游戏背景图片2.4功能需求坦克大战是一款经典的游戏本游戏在学习继承前辈的同时尝试性的进行一些创新下面是对系统主要功能的简要概述。整体上说,本游戏分为敌我双方,主战坦克由玩家控制,敌方坦克能够智能化的随机出现在屏幕上,并且移动但是不会发射子弹。玩家的控制:游戏打开的时候,玩家可以选择音乐音效的开关还可以查看积分榜,然后进入游戏,玩家可以通过屏幕上面的虚拟键控制坦克的运行,可以通过触屏来控制坦克的炮筒方向并且打出炮弹,当坦克打中敌方坦克,子弹和地方坦克都死亡,分数会加一。游戏过程中,玩家不可以暂停游戏,然后再开始游戏。当倒计时结束时,则游戏结束。敌方坦克的智能运行:敌方坦克由于需要具有一定的智能性,随机的出现在屏幕上,并且消失在屏幕以外,撞到主角坦克时,也不会发生爆炸。使之具有一定的可玩性。敌人可以自动行走,但是应当在以下适当的情况下转向:首先是是否超出界面的边界,其次是是否与地图障碍物发生了碰撞,再次是是否与用户坦克发生了碰撞。子弹的运行:主战坦克是有玩家控制打出的,通过控制炮筒的方向,向不同的方向发射子弹,如果击中目标就会爆炸消失,如果没有击中目标,出了屏幕也会消失。第3章系统实现3.1主角在人机对战时,主角的主要功能是点击左右虚拟按钮,坦克会向左向右移动,但是通过按住按钮的时间,来控制坦克的移动速度,按住时间长,坦克的速度就会加快,按住的时间短,坦克就会移动的比较慢。通过触屏来控制坦克炮筒的方向,并且发射子弹。当子弹打中目标时,子弹和目标都会爆炸,当子弹没有打中目标时,子弹走出屏幕,子弹消失。该游戏主要是控制在60秒内,倒计时为零则游戏结束,打中目标数就是该次游戏的分数。publicclassTankController:MonoBehaviour{privateSliderslider;publicTransformShell;privatefloatfireCoolTime=0;privateTransformTurret;privateTransformShellSapwanerPoint;privatefloatcurSpeed,targetSpeed,rotSpeed;privatefloatturretRotSpeed=10.0f;privatefloatmaxForwardSpeed=15.0f;privatefloatmaxBackwardSpeed=-15.0f;voidUpdateControl(){PlaneplayerPlane=newPlane(Vector3.up,transform.position+newVector3(0,0,0));Rayray=Camera.main.ScreenPointToRay(Input.mousePosition);floathitDist=0;if(playerPlane.Raycast(ray,outhitDist)){Vector3rayHitPoint=ray.GetPoint(hitDist);QuaterniontargetPoint=Quaternion.LookRotation(rayHitPoint-transform.position);Turret.transform.rotation=Quaternion.Slerp(Turret.rotation,targetPoint,Time.deltaTime*turretRotSpeed);}if(Input.GetKey(KeyCode.W))targetSpeed=maxForwardSpeed;elseif(Input.GetKey(KeyCode.S))targetSpeed=maxBackwardSpeed;elsetargetSpeed=0;if(Input.GetKey(KeyCode.A))transform.Rotate(0,-rotSpeed*Time.deltaTime,0);elseif(Input.GetKey(KeyCode.D))transform.Rotate(0,rotSpeed*Time.deltaTime,0);curSpeed=Mathf.Lerp(curSpeed,targetSpeed,7.0f*Time.deltaTime);transform.Translate(Vector3.forward*Time.deltaTime*curSpeed);}}3.2敌方坦克敌方坦克在游戏开始以后才开始出现,并且没有什么太大的规律,都是从屏幕的最右面出现,然后消失在屏幕以外或者被子弹击中消失。敌方坦克走的路线是有轨道的,从屏幕的右上方出现后,会走一段轨迹,在运动过程中如果被子弹打中就会爆炸消失,如果没有被击中,则会消失在屏幕以外的地方。voidMove(){transform.Translate(Vector3.forward*Time.deltaTime*speed);}voidFireToPlayerTank(){Quaternionrot=Quaternion.LookRotation(Player.position-transform.position);transform.rotation=Quaternion.Slerp(transform.rotation,rot,rotSpeed*Time.deltaTime);if(Vector3.Distance(transform.position,Player.position)<=10.0f){fireCoolTime+=Time.deltaTime;if(fireCoolTime>=1.0f){fireCoolTime=0;Instantiate(shell,ShellSpawnerPoint.position,rot);}}}3.3子弹publicclassShellMove:MonoBehaviour{ voidStart(){ } voidUpdate(){transform.Translate(Vector3.forward*30*Time.deltaTime);/*子弹射击速度*/Destroy(this.gameObject,5.0f);/*5s后销毁*/ }}第4章系统测试4.1测试要点被测特性:对软件进行功能性测试对软件进行非功能性测试不被测特性:源代码,逻辑等;模块的接口,模块的错误处理,模块的局部数据结构,模块在执行时执行的独立路径,模块在处理边界值时的情形;单元(模块)之间的可用性等4.2测试时间、地点、人员本次测试的时间,地点,人员总结如下。测试时间:2016.5.20-2016.5.21地点:工作室人员:何成林4.3测试环境描述本次测试主要是采用黑盒测试,目的是验证基于Unity3D的平面射击游戏项目的功能是否已经实现,具体实现了哪些功能,界面设计是否和谐,以及运行环境需求的测试。测试配置环境如下:操作系统:MicrosoftWindows7浏览器:IE10.7CPU:AMD2000MHz内存:4GB硬盘:500GB4.4功能测试执行情况游戏开始界面Start测试用例测试项目名称:游戏开始界面功能测试用例编号:estCase-Perf-1测试人员:测试时间:2016.5.20测试项目标题:非正常页面访问的测试测试内容:运行游戏后能进入开始界面测试环境与系统配置:详见4.3环境描述测试进行游戏开始测试次数10次预期结果进入了游戏开始界面测试过程直接在Unity中运行项目测试结果进入了游戏开始界面测试结论游戏此功能已经实现实现限制:在Unity环境中备注:无玩家坦克Player测试用例测试项目名称:玩家坦克功能测试用例编号:estCase-Perf-2测试人员:测试时间:2016.5.21测试项目标题:非正常页面访问的测试测试内容:玩家坦克能正常移动及发射子弹测试环境与系统配置:详见4.3环境描述测试进行游戏中测试次数10次预期结果坦克正常移动及射击测试过程开始游戏后对操作玩家坦克测试结果玩家坦克能正常运动并发射子弹测试结论游戏此功能已经实现实现限制在Unity环境中备注:无第5章结束语5.1总结本次设计已是大学最后一次对专业知识的综合实践活动,同时也是我所做的工作量最大的一次作业,因此从一开始我对本次毕业设计就给予了高度重视。从选题、收集资料、学习相关技术到实际编程,我都一丝不苟的对待了。当然其间我也走了不少弯路,有时甚至需要推倒重来,但同时我也多次体会过克服困难后的成就感。首先是编程能力方面得到了一个比较好的加强,其次就是让我了解了我的不足,一直以来我觉得自己学到的东西挺多的,但是通过这次毕业设计下来发现,我所了解的东西真的是沧海一粟,知识真的有太多太多,真的应了那句话,活到老学到老。这次设计是对大学所学的知识的一种检验,设计中发现自己的不足,查资料,找老师,问同学,当然主要是自己查资料,当然老师给了我很大的帮助,老师教我该用什么知识点,我然后自己去查。老师给了我一个学习的方向。过程是苦的,结果是甜的。一分耕耘一分收获。我的努力得到了回报,老师表扬了我,这给了我很大的鼓舞。通过这次的毕业设计,不仅在专业知识上有了比较好的巩固,而且更重要的是我的能力得到了提高,比如处理问题的能力,学习能力,等。毕业设计过去了,意味着我将踏上新的征程——工作!面对未来,我很自信!同时我还学会了一些编程技巧,而且对调试的错误有进一步的认识,有时候就一个小小的语法错误就会导致程序调试不通过。所以每个字符,每句程序都要认真对待。使用不同的编程环境,其效率完全不一样,所以我选择了Eclipse,它自动找错/纠错功能、Debug调试和代码自动生成等一些重要的功能大大提高了我的设计效率。对于设计论文,一定要注意格式,认识事情都有它的规则、规范,不能按个人喜好随意改变。毕业设计跟我们平时上的基础课或者专业课不同!它是一个重要课题!要用到很多综合性的知识!最重要的是让学生体验一下做科学研究的整个过程。也是毕业最重要的一个过程!它最能把理论知识准确运用到实际当中的去!做好了它就是就是一份成功的毕业设计了。随着答辩日子的到来!我的毕业设计也快接近了尾声了。在我还没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的单纯性的总结!但是通过这次做毕业设计发现自己的看法有点太片面和简单了。通过这次毕业设计的编制使我明白了自己原来的知识还是比较欠缺。自己要学习的东西还太多太多!以前总是觉得自己什么东西都会!什么东西都懂!有点眼高手低。通过这次毕业设计的收集编制等等!我才明白学习是一个长期积累的过程!在以后的工作和生活当中我们都应该不断的努力学习!努力的去提高自己知

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论