《坦克大战》系统分析设计.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《坦克大战》系统分析设计

《坦克大战》 系统分析设计文档 目录 一、系统功能模块 1 1. 战斗模块: 1 1.1 移动模块 1 1.2 射击模块 2 1.3 生命值模块 3 1.4 碰撞检测模块 3 1.5 对象创建模块 4 1.6 积分模块 4 1.7 作弊模块 5 1.8 道具模块 5 2. 面板绘图模块 5 3. 事件处理模块 6 二、程序关键类说明 7 1. Tank类 7 2. Missile类 8 3. TankLocal类 9 4. BloodTool类 10 一、系统功能模块 整个游戏系统利用面向对象语言Java编写,程序可大致分为以下几个大模块: 更详细可将战斗模块做以下分解: 1. 战斗模块: 1.1 移动模块 模块描述: 使玩家与电脑坦克能够自由并且匀速流畅的进行移动,通过按下和松开键盘上的方向键来实现移动和停止移动。 设计方案: 我们对传统的坦克四向移动方式其进行了完善,将原本的四向移动完善为八向移动,即除了传统的上下左右移动之外,还增加了斜向移动,也就是左上、左下、右上、与右下。除了可以按住单个方向键进行四向移动之外,还可以同时按住两个互不相反方向键来进行斜向移动的实现,松开方向键之后坦克停止移动,同样,电脑控制的坦克也是八向的移动方式,这样就增加了更多的不确定因素,游戏的耐玩性和挑战性得到了提高。 关键技术介绍: 在tank类中定义一个枚举类表示方向,其中包括9个固定方向对象:八个方向+stop静止,方便直接调用这些固定对象;对主站坦克,即玩家的坦克设置布尔类型的方向标志位,再通过switch...case...语法对玩家按键情况进行检测,于是可以检测出玩家按下的两个键,最后通过调用位移方法达到移动的目的。 1.2 射击模块 模块描述: 使玩家与电脑控制的坦克能够流畅并且自由但是有限制的发射子弹,通过按下和松开键盘上的空格键来实现射击和停止射击,子弹弹道以直线匀速的形式飞出。 设计方案: 我们对传统的坦克四向射击方式进行了完善,将原本的四向完善为八向射击,即除了传统的可以上下左右射击之外,还增加了斜向射击,也就是说在八向移动的基础上,按下键盘上的空格键,玩家控制的坦克就可以朝着当前的朝向发出子弹,如果玩家按住空格键不放,坦克将只会发出一颗子弹,而不是不停的射击。 关键技术介绍: 在八个方向移动的基础上,通过监听玩家按下的按键,在绘制子弹前,获取当前坦克的移动方向标志位的值dir,就可以知道即将打出的子弹朝哪个方向飞行,并绘制它即可。飞出的子弹不改变方向直线匀速(大于坦克的移动速度)飞行,直到撞到障碍物或边界或击中坦克,子弹消亡。 1.3 生命值模块 模块描述: 让玩家和电脑控制的坦克都具有一定量的生命值,在受到攻击之后生命值减少,电脑控制的坦克生命值减少完之后就会被摧毁,玩家的坦克生命值减少完之后游戏结束,增加游戏的可玩性与玩家容错率。 设计方案: 将生命值用血条的方式呈现出来,即在玩家和电脑控制的坦克的图标上方显示代表当前生命值的血条,电脑控制的每辆坦克可以承受4次攻击,然后被摧毁,玩家控制的坦克可以承受6次攻击然后被摧毁,游戏结束。每次受到攻击之后血条就会有相应的减少来响应被攻击。 关键技术介绍: 利用到Java中的内部类,这样的好处是可以直接与tank对象融为一体,坦克移动血条就会跟着移动;在tank类里定义一个内部类,bloodbar血条,里面包括自身的draw方法,画出血条,血条长度通过获取坦克当前的血量进行绘制。这样就可以实现坦克的生命值的图形化。 1.4 碰撞检测模块 模块描述: 游戏中,坦克与坦克之间,坦克与墙之间,子弹与坦克之间,子弹与墙之间等都需要进行碰撞检测,撞墙不能前进,坦克之间也不能相互穿透,子弹也不能穿透墙壁。 设计方案: 通过获取被测对象的当前坐标,并对两个对象的坐标进行比较检验是否发生碰撞;坦克与坦克之间,通过从坦克集合里遍历取出坦克,判断是否存活,然后依次与被测对象进行碰撞检测,其他情况的碰撞如子弹与坦克可同理实现。 关键技术介绍: 利用Java中最简单的矩形碰撞检测,先引入public Rectangle getRect()方法,被测的两个对象直接调用getRect()方法得到自身所在的矩形表框,通过intersects()方法比较两个对象的所在矩形框是否相交来判断是否发生碰撞。 1.5 对象创建模块 模块描述: 游戏中所有可视化对象的创建过程与方法,有的简单的逐一创建,有点群体创建。 设计方案: 对主坦克、墙障碍进行单独创建,对敌人坦克、子弹、爆炸效果等对象进行群体创建,并合理地对它们进行添加、删除等操作。 关键技术介绍: 利用Java中的集合中ArrayLi

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档