坦克大战(终极)_第1页
坦克大战(终极)_第2页
坦克大战(终极)_第3页
坦克大战(终极)_第4页
坦克大战(终极)_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、网络游戏开发网络游戏开发-Direct-X 开发报告开发报告题题 目:目: 坦 克 大 战 姓姓 名:名: 谌庆央 学学 号:号: 110804002 班班 级:级: 11 数媒 指导教师:指导教师: 许德鹏 完成日期:完成日期: 2014.06.11 目目 录录第第 1 1 章章 需求分析需求分析 1.1 需求分析第第 2 2 章章 游戏设计方案游戏设计方案 2.1 设计原因 2.2 游戏特色及晚点 2.3 游戏概述 2.4 游戏风格 2.5 聊天系统第第 3 3 章章 游戏开发平台构建游戏开发平台构建 3.1 开发硬件 3.2 开发平台第四章第四章 项目设计项目设计 4.1 系统需求分析

2、4.2 系统功能设计 第第 5 5 章章 游戏网络情况游戏网络情况 5.1 网络稳定性 5.2 网络运行情况 5.3 跨平台性第第 6 6 章章 调试运行与分析调试运行与分析 6.1 运行界面 6.2 游戏界面第七章第七章 总结总结7.1 总结7.2 系统不足之处参考文献第一章第一章 需求分析需求分析1.1 需求分析需求分析 坦克大战中有我方坦克和敌方坦克,我方坦克有一个,敌方坦克一个或多个看连接人数的多少。坦克可以移动,也可以发射子弹。我方坦克可以通过上下左右键来控制方向,敌方坦克通过对手控制改变方向。在游戏窗体中有障碍物,在遇到其他障碍物时,我方坦克停止移动,并通过操纵改变方向再移动。坦克

3、有一定数值的生命值,当与敌方坦克或敌方子弹相撞时,生命值减少,当生命值是零时,敌方胜利,游戏结束,当敌方坦克被击中,血量降为零时我方胜利,游戏结束。敌方坦克的生命值跟我方坦克的生命值一样,当敌方坦克与我方坦克或者我方子弹相遇就消失,同时我方子弹也消失,并产生爆炸。当我方坦克把敌方坦克消灭完后,我方胜利,游戏结束。游戏过程中可以通过捡拾战斗场地的金币,炮弹,加血等奖励来补充自己的弹药库。敌我一直战斗直到有一方战败游戏结束。 第第 2 2 章章 游戏设计方案游戏设计方案2.12.1 设计原因设计原因 1) 根据原红白机的坦克大战分析现行的类似游戏改编 2) 独特的对抗性吸引更多的玩家体验乐趣 3)

4、 简单的操作性使本游戏更适合休闲娱乐 4) 丰富道具,坦克同样可以吸引大型游戏的玩家 5) 游戏针对人群是25岁及以下的玩家,但是游戏的简单和快速性使它同样适合工作 间隙的休闲娱乐2.22.2 游戏特色及玩点游戏特色及玩点 1) 游戏以卡通搞笑风格让玩家轻松游戏 2) 对抗性强,让玩家充分体验网络对抗的刺激感觉 3) 操作简单,通过键盘就可以完成游戏的所有基本操作 4) 游戏的多种道具不但有实用性还尽量提供玩家酷的感觉,满足玩家的成就感 2.32.3 游戏概述游戏概述 1) 游戏是以坦克为主角的多人网络对抗游戏 2) 玩家可以可以双人对战进行 3) 游戏在一个选定的场景中进行 2.42.4 游

5、戏风格游戏风格 1)游戏以2D画面表现比较逼真 2) 在主体风格下,游戏体现多种场景 3) 场景中主要表现的是俯视图效果 2.52.5 聊天系统聊天系统 1) 玩家可以在大厅和游戏中进行聊天第第 3 3 章章 游戏开发平台构建游戏开发平台构建 3.13.1 硬件硬件: windows7,window8,windows XP 3.23.2 软件:软件: Visual C+6.0,在其基础之上的 MFC第第 4 4 章章 项目设计项目设计4.14.1 系统需求分析系统需求分析4.1.14.1.1 在单人操作模式下实现的功能在单人操作模式下实现的功能1) 能够发射子弹2)能够模拟爆炸3)能够产生障碍

6、4)能够增长生命4.1.24.1.2 在网络对战模式下实现的功能在网络对战模式下实现的功能在人机对战模式中实现功能基础上,增加以下功能实现网络对战功能:1)添加网络功能,使两台或者多台不同计算机的玩家通过一定的网络连接,加入到游戏中;2)能够自主分组并选择角色,填写自己的游戏信息,各个玩家之间实现网络对战功能,并且同是一方的坦克不能相互攻击;4.24.2 系统功能设计系统功能设计4.2.14.2.1 坦克大战总体功能设计坦克大战总体功能设计坦克大战游戏主要实现玩家参加游戏的整个流程,用户登陆游戏客户端选择游戏模式,可分为单机模式和网络对战模式,选择单机模式可以直接进入游戏状态;选择网络对战模式

7、,在启动服务器后,玩家需要选择自己的角色,用户名和ID等玩家相关资料,成功后使用其账号进行登录游戏(只有成功登录的玩家才能参与网络对战游戏功能) ;登陆玩家就可以通过控制键盘操作,加入对战游戏。整个网络版坦克大战游戏流程图如图4.1所示:初 始 化游戏模式对 战对 战随机产生敌方坦克玩家坦克判断胜负玩家一玩家二玩家一玩家二敌方坦克我方坦克判断胜负结 束选择角色,填写信息图 4.1 网络坦克大战游戏流程4.2.24.2.2 TankClientTankClient 类基本功能分析类基本功能分析TankClient 类是整个系统的核心部分,它承担整个系统的所有可实现功能的调度工作。 是整个游戏运行

8、的场所。TankClient 类设计流程图如图 4.2 所示:开始初始化坦克对战双方玩家坦克由键盘控制移动发射炮弹碰撞检测(坦克和子弹)不处理同角色坦克产生爆炸不同角 色坦克判断胜负结束图 4.2 TankClient 类设计流程TankClient 类是主类,通过调用其他类中封装的方法来使整个系统运行起来,下面显示 TankClient 与各个类之间的关系如图 4.4 所示:TankClient 类(主类)Tank 类(我方)Tank 类(敌方)New 参数 1New 参数 2调用 Missile 类打中调用 Explode 类产程爆炸判断胜负键盘控制移动键盘控制移动打击图 4.4 游戏系统

9、类关联图4.2.34.2.3 TankTank 类基本功能分析类基本功能分析Tank(坦克)类中,封装了一些变量属性,包括坦克自己的大小(WIDTH,HRIGHT) ,运动速度(SPRRD_X:在 x 轴方向的速度;SPEED_Y:在 Y 轴方向的速度)、生命值控制(life) 、坦克编号(id) 、坦克名(name)、方向控制(dir)、生死控制(live)、好坏控制(good)的变量等。Tank 类中没有 main 函数,不是主类,它当中只封装一些变量属性和静态方法,被TankClient 类调用来实现坦克的一系列动作。Tank 类中的主要方法罗列如下:(1)getRect()方法publ

10、ic Rectangle getRect() return new Rectangle(x, y, this.WIDTH, this.HEIGHT);Rectangle 类是碰撞检测的辅助类,通过得到子弹的 x,y 坐标和宽高度,检测两个矩形是否碰撞(相交) ;(2)draw()方法:负责将所有的活动在屏幕上画出来;(4)move()方法:主要负责控制坦克的移动,包括 8 个方向(左,左上,上,右上,右,右下,下,左下)的控制以及给坦克一个移动的速度;(4)keyPressed()方法:设定使用键盘的“” “” “” “”键控制坦克移动;(5)keyReleased()方法:处理按键抬起事件,

11、抬起“CTRL”键时,发射炮弹并加入新炮弹,能够逐一发射每一发炮弹、抬起“A”键可以发射超级炮弹等功能;(6)locationDirection()方法:定义了炮筒方向,可以向八个方向发射炮弹;(7)fire()方法:处理发送子弹的方法;(8)bumpWithWall()方法:主要负责处理坦克撞墙事件;(9)bumpWithTank()方法:主要到负责处理坦克和坦克相撞事件;4.2.44.2.4 MissileMissile 类基本功能分析类基本功能分析Misslile(子弹)类和 Tank 类一样,只封装一些变量属性和静态方法,主要变量包括:子弹自己的大小(WIDTH,HRIGHT) ,运动

12、速度(SPRRD_X:在 x 轴方向的速度;SPEED_Y:在Y 轴方向的速度)、子弹标示(ID) 、所属坦克的 id 号(TankId 用于网络版)等。Misslie 类持有一个 TankClient 类(大管家)的引用 tc,TankClient 类要执行发射炮弹操作时调用Missile 类中的方法。Misslie 类中的主要方法如下:(1)draw()方法:负责画出子弹的所有活动;(2)move()方法:先判断方向再移动,并给它一定的移动速度;(3)getRect()方法:负责取得子弹的外切方形,为碰撞检测做准备;(4)hitTan()方法:检测子弹是否撞到坦克,若撞到返回 true,否

13、则返回false;(5)hitTanks()方法:检测是否撞到一系列坦克中的一个;(6)hitWall()方法:检测子弹和墙是否相撞。4.2.54.2.5 ExplodeExplode 类基本功能分析类基本功能分析Explode(爆炸)类也是一个只封装自己的变量和方法的外部包装类,没有 main 方法,供TankClient 主类需要时调用它的 draw()方法,当子弹击中坦克时需要产生爆炸。4.2.64.2.6 服务器类基本功能分析服务器类基本功能分析TankServer(服务器)类主要负责在网络对战游戏时维护各个在线玩家的基本信息,并动态的维护玩家列表。联机模式下类关系图如图 4.5 所示

14、:TankServer 类TankClient 1 类类TankClient 2 类类New 参数 1New 参数 2调用 Missile 类调用 Explode 类产程爆炸判断胜负Tank 类(我方)Tank 类(敌方)打中打击4.5 联机模式类关联图4.2.74.2.7 信息传送类基本功能分析信息传送类基本功能分析信息传送类就是用来封装客户端和服务器端的交互信息。将网络中传递的众多信息封装成可序列化的类,将会使程序有很好的可扩展性。第第 5 5 章章 游戏网络情况游戏网络情况5.15.1 网络稳定性网络稳定性 网络非常的稳定,只要连接上网后,基本不会出现断开的情况,有一点不足就是在连接网络

15、的时候耗时比较长。5.25.2 网络运行情况网络运行情况 建立主机的一方只需创建一局新游戏即可,而另一方玩家则需要 输入服务器 IP 地址,端口号与主机相同,从而与主机连接进行游戏;游戏进行时玩家双方还可以聊天。5.35.3 跨平台性跨平台性 可支持本地连接,局域网连接,广域网连接第第 6 6 章章 调试运行与分析调试运行与分析6.16.1 开始界面开始界面6.26.2 键盘设计键盘设计6.36.3 参数设计参数设计6.46.4 通讯设置通讯设置6.56.5 服务器管理服务器管理6.76.7 正在游戏界面正在游戏界面6.86.8 游戏中的聊天界面游戏中的聊天界面第第 7 7 章章 总结总结7.

16、17.1 总结总结本次设计已是大学最后一次对专业知识的综合实践活动,同时也是我所做的工作量最大的一次作业,因此从一开始我对本次毕业设计就给予了高度重视。从选题、收集资料、学习相关技术到实际编程,我都一丝不苟的对待了。当然其间我也走了不少弯路,有时甚至需要推倒重来,但同时我也多次体会过克服困难后的成就感。通过这次毕业设计以及撰写本毕业论文,我学会了一些编程技巧,而且对调试的错误有进一步的认识,有时候就一个小小的语法错误就会导致程序调试不通过。所以每个字符,每句程序都要认真对待。使用不同的编程环境,其效率完全不一样,所以我选择了 Eclipse,它自动找错/纠错功能、Debug 调试和代码自动生成

17、等一些重要的功能大大提高了我的设计效率。对于设计论文,一定要注意格式,认识事情都有它的规则、规范,不能按个人喜好随意改变。7.27.2 设计中的不足之处设计中的不足之处本系统实现了坦克游戏所应有的基本功能,但是由于时间和能力有限,还有一部分功能未能实现,例如:外部文件读取、地图设定、升级、坦克的高级人工智能控制等,不能和现在 Internet 上各种坦克大战游戏相媲美。还有就是对部分功能在设计过程中未能做到更加完善,稍有瑕疵,游戏时偶尔还会产生闪烁现象,但是已经尽力改善了。还有就是当运行网络模式时,必须专门启动服务器,而不是一键启动。对于玩家里来说有点麻烦。7.37.3 展望展望本系统基本实现了坦克游戏所应有的基本功能,在

温馨提示

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

评论

0/150

提交评论