TAVA课程设计 坦克大战

TAVA课程设计 坦克大战

ID:39468710

大小:221.00 KB

页数:19页

时间:2019-07-04

TAVA课程设计 坦克大战_第1页
TAVA课程设计 坦克大战_第2页
TAVA课程设计 坦克大战_第3页
TAVA课程设计 坦克大战_第4页
TAVA课程设计 坦克大战_第5页
资源描述:

《TAVA课程设计 坦克大战》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《Java语言程序设计》课程设计报告题目:坦克大战专业:学号:姓名:指导教师:成绩:2010年12月28日1.课程设计研究背景及意义开发一个基于J2SE的游戏,坦克大战2.课程设计题目描述和要求坦克游戏要求:i.需要有图形游戏界面,让用户能看到游戏给出的反馈ii.有人机交互功能,使用户能操作指定的游戏元素iii.不同队伍的坦克,须显示不同外观,已分辨敌我iv.坦克能够开火,攻击敌方,但不能攻击队友v.需要有不可被子弹穿透的墙,且墙有可摧毁和不可摧毁两种vi.坦克有生命值,并非被击中一次就会爆炸vii.坦克爆炸后将

2、产生道具,拾到道具的坦克可加满生命值3.课程设计报告内容3.1题目求解的理论依据及算法解题原理:1)游戏基本元素:坦克,炮管,子弹,墙壁,地雷2)按住w,s,a,d或上,下,左,右箭头键,坦克向上下左右移动3)按鼠标左键,坦克开火,产生子弹,子弹与另一个坦克相碰,子弹3.2数据结构:窗口:主窗口TankClient游戏元素:子弹shot,坦克tank,墙壁wall,血条HitPoint,炸弹Bomb,涨炸弹的道具ShotsItem,涨血的道具HitPointItem3.3主要事件处理:1、按下鼠标左键发射普通子弹

3、。2、按下鼠标右键发射散弹。3、子弹爆炸的效果,普通子弹和散弹的效果。3.4简要的设计流程:3.5、源代码:packagecn.hnist.Joshua;importjava.awt.*;/***抽象子弹类*@authorbebebird@hotmail.com*/abstractclassShot{intshotSpeed;//子弹移动速度intshotRadius;//子弹大小(半径)intshotPower;//子弹威力intox,oy,sx,sy;//o表示Tank的中心坐标,s表示炮弹坐标(初始时为炮筒

4、端点)intlengthX,lengthY;//子弹每次移动的步长booleanisLive;booleanisBomb;//死时是否产生爆炸TankClienttc=null;Tanktk=null;ShotBombshotBomb=null;publicstaticfinalToolkitTLK=Toolkit.getDefaultToolkit();publicShot(intox,intoy,intsx,intsy,Tanktk){this.ox=ox;this.oy=oy;this.sx=sx;this

5、.sy=sy;this.tc=tk.tc;this.tk=tk;this.isLive=true;}publicShot(Tanktk){this.ox=tk.x;this.oy=tk.y;this.sx=tk.turretDirx;this.sy=tk.turretDiry;this.tc=tk.tc;this.tk=tk;this.isLive=true;}abstractvoiddraw(Graphicsg);abstractvoidmove();abstractvoiddead();publicboole

6、anisOutOfWindow()//检查子弹是否跃出边界{if(sx>TankClient.WIN_WIDTH

7、

8、sx<0

9、

10、sy>TankClient.WIN_HEIGHT

11、

12、sy<0){this.isBomb=false;returntrue;}else{returnfalse;}}publicRectanglegetRect()//碰撞检测时用于判断{returnnewRectangle(sx-shotRadius,sy-shotRadius,shotRadius*2,shotRadius*2;}}/**

13、*散弹类*@authorbebebird@hotmail.com*/classHydraShotextendsShot{staticfinalImageHYDRASHOT=TLK.getImage(Shot.class.getClassLoader().getResource("Image/Shot/SUPER.png"));publicHydraShot(intox,intoy,intsx,intsy,Tanktk){super(ox,oy,sx,sy,tk);this.shotPower=1;//子弹大小(半

14、径)设置为6this.shotRadius=6;//炸弹速度设置为3this.shotSpeed=13;this.lengthX=shotSpeed*(sx-ox)/(int)Math.hypot(sx-ox,sy-oy);this.lengthY=shotSpeed*(sy-oy)/(int)Math.hypot(sx-ox,sy-oy);}publicvoiddraw

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。