《坦克大战》系统分析设计_第1页
《坦克大战》系统分析设计_第2页
《坦克大战》系统分析设计_第3页
《坦克大战》系统分析设计_第4页
《坦克大战》系统分析设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

《坦克大战》1名目\l“_TOC_250016“一、系统功能模块 1\l“_TOC_250015“战斗模块: 1\l“_TOC_250014“移动模块 1\l“_TOC_250013“射击模块 2\l“_TOC_250012“生命值模块 3\l“_TOC_250011“碰撞检测模块 3\l“_TOC_250010“对象创立模块 4\l“_TOC_250009“积分模块 4\l“_TOC_250008“作弊模块 5\l“_TOC_250007“道具模块 5\l“_TOC_250006“面板绘图模块 6\l“_TOC_250005“大事处理模块 6\l“_TOC_250004“二、程序关键类说明 7\l“_TOC_250003“Tank类 7\l“_TOC_250002“Missile类 8\l“_TOC_250001“TankLocal类 9\l“_TOC_250000“BloodTool类 102一、系统功能模块坦克大战战斗模块大事处理模块面板绘图模块坦克大战战斗模块大事处理模块面板绘图模块战斗模块碰战斗模块碰对移动模块射击模块生命值模块撞象积作道检创分弊具测建模模模模模块块块块块战斗模块:移动模块模块描述:上的方向键来实现移动和停顿移动。设计方案:1玩耍的耐玩性和挑战性得到了提高。关键技术介绍:9个固定方向对象:八个方向+stop静止,便利直接调用这些固定对象;对主站坦克,即玩家的坦克设置switch...case...是可以检测出玩家按下的两个键,最终通过调用位移方法到达移动的目的。射击模块模块描述:出。设计方案:我们对传统的坦克四向射击方式进展了完善,将原本的四向完善为八向射击。关键技术介绍:当前坦克的移动方向标志位的值dir,就可以知道马上打出的子弹朝哪个方向飞〔大于坦克的移动速度〕飞行,直到撞到障碍物或边界或击中坦克,子弹消亡。2生命值模块模块描述:后玩耍完毕,增加玩耍的可玩性与玩家容错率。设计方案:46条就会有相应的削减来响应被攻击。关键技术介绍:tank对象融为一体,坦这样就可以实现坦克的生命值的图形化。碰撞检测模块模块描述:穿透墙壁。设计方案:依次与被测对象进展碰撞检测,其他状况的碰撞如子弹与坦克可同理实现。关键技术介绍:publicRectanglegetRect方法,3被测的两个对象直接调用getRectintersects方法比较两个对象的所在矩形框是否相交来推断是否发生碰撞。对象创立模块模块描述:创立。设计方案:群体创立,并合理地对它们进展添加、删除等操作。关键技术介绍:ArrayListadd方法添加到draw方法就可以创立并绘制出多个对象。积分模块模块描述:由于本玩耍的核心就是玩家把握坦克去摧毁电脑把握的敌方坦克之后获得获得确定量的积分,增加玩耍的挑战性同事具备了确定的攀比性。设计方案:一辆电脑把握的坦克之后,积分会增加10,直到玩家把握的坦克被摧毁之后玩耍完毕,每一局玩耍的开头玩家的积分都会重置归零。关键技术介绍:grade静态变量,同时在tankdraw方法里,推断假设坦克为敌人坦克,且存活状况为死亡,则对此变量进展加10操作;在玩家按下F24grade0即可。作弊模块模块描述:该模块的功能是可以让玩家通过按下特别的作弊按键使其把握的坦克朝八设计方案:ctrl键〔〕时,玩家把握的坦克可以朝按则会不停的射击。关键技术介绍:Direction88个方fire方法。道具模块模块描述:遮住坦克,而补血道具可以补满主坦克的血量。设计方案:关键技术介绍:drawmove运动为满一个周期就连续下一步移动,假设满一个周期就重置位置。5面板绘图模块模块描述:〔坦〕并重绘,以使玩耍能正常运行,同时利用有关技术使重绘时,坦克移动、子弹飞行等操作不会消灭闪耀现象。设计方案:paint方法里面画出全部的可视化对象,将需要先绘制的update方法内,最终再绘制到主面板上;同时在面板对象的形象绘制。关键技术介绍:Toolkit来导入外部图片资源,并通过反射机制来通过资源的URLJava中的“双缓冲”技术,双缓冲即在双缓冲实现过程如下:双缓冲实现过程如下:1.1.2.3.将缓冲区位图拷贝到当前画布上4.释放内存缓冲区大事处理模块模块描述:作,或按下功能键,进展特定功能操作;比方玩家死亡,按下F1坦克重生等。6设计方案:进展处理;玩家通过键盘上的方向键来操作坦克的移动,按下上、下、左或右键坦克能进展一般的四向移动,同时按下左上、左下、右上或右下方向键,坦克ctrl键坦克能进展爆放射击,朝八个方向同时射击,同时按下移动键和射击键则可以实现一边移动一边攻击。松开各个按键之后坦克会停顿相应的动作,关键技术介绍:利用在主类里设置好监听器KeyMoniter,对键盘的按下、释放操作进展监tankswitchcase来对上下左右,空格,ctrlF1、F2等按键识别并反响。二、程序关键类说明Tank类、Missile类、TankLocal类、BloodTool类Tank类坦克类是最主要的类,包含了坦克的一些根本的属性,如初始坐标、frontX,frontY用来推断坦克是否撞墙的,step则是用于产生敌人坦克移动的随机步数。方法:① draw方法,绘制坦克② locate方法用于确定推断坦克移动的方向,主要推断是否为斜向移动③ move方法则是把握坦克坐标移动④ fire方法用来构建子弹对象并参与到子弹集合中⑤ KeyPressedKeyReleaes⑥ ⑦ superFire则是用来实现八个方向的子弹放射的7⑧ stayMove用于处理坦克撞墙的坐标变换⑨ eat方法用来推断主坦克是否与补血道具碰撞及处理TankTank-x:int-y:int+XSPEED:int+YSPEED:int-blood:int-isLive:bool-Justice:bool-step:int-frontX:int-frontY:int+Tank(inx:int,iny:int,injustice:bool)+draw+locate+move+fire:Missile+KeyRelease:Direction+KeyPress:Direction+impactOnWall(inw:Wall):bool-superFire+stayMove+eat:bool+Tank(inx:int,iny:int,injustice:bool,indir:Direction,intl:TankLocal):TankLocalBloodBar+draw(ing:数据类型1)内部类:坦克类中还拥有一个内部类BloodBar,用于绘制坦克的血条Missile类属性:x、y,子弹的存活状况、正义或反派以及方向,还TankLocaltl。方法:① draw方法,绘制子弹② move把握子弹的移动③ 坦克不能发生碰撞8④ getRect用于返回子弹的坐标、宽度和高度,以便进展碰撞检测⑤ hitWall用于推断子弹是否撞墙及处理MissileMissile-x:int-y:int-isLive:bool-justice:bool-tl:TankLocal+dir:Direction+Missile(inx:int,iny:int,indir:Direction)+Missile(inx:int,iny:int,injustice:bool,indir:Direction,intl:TankLocal)+draw+move+hitTank(int:Tank):bool+hitTanks(int:Tank):bool+getRect:Rectangle+hitWall(inw:Wall):boolTankLocal类方法:① paint方法是最重要的方法之一,全部的可视化对象都必需在此方法中方法中随主面板实时刷,也因此能看到对象的移动。② 方法是双缓冲技术的实现,主要画出一张虚拟图片,将要加载的内容绘制好,再拷贝到当前画板中。③ 可见性、窗口尺寸可更改性,还负责启动主线程。④ main启动程序9PaintThreadPaintThreadTankLocal+grade:int+paint+undate+startFrame+mainRunnable+runKeyMoniterKeyAdapter+KeyReleased+KeyPressed内部类:① paintThread线程内部类,用于重绘面板② KeyMoniter监听内部类,用于监听主坦克的按键大事BloodTool-x:intBloodTool-x:int-y:int-w:int-h:int-step:int-isLive:bool-tl:TankLocal-postio

温馨提示

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

评论

0/150

提交评论