欢迎来到天天文库
浏览记录
ID:40356603
大小:180.01 KB
页数:23页
时间:2019-07-31
《项目-坦克大战-设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《JAVA程序开发课程设计》项目设计项目名称:TankWar软件专业:软件工程班级:13软工1班姓名:毛晨光学号:1322120124一、需求分析:基本功能:1.玩家控制的坦克能够四处移动并且打击敌方坦克;2.敌方坦克能够随机四处移动并且打击玩家控制的坦克;3.玩家控制的坦克拥有血量,而敌方坦克没有;4.坦克受到攻击时血条会缩短;5.敌方坦克被消灭完之后,提示游戏胜利;6.用户方坦克被消灭后提示游戏结束;特色功能:1.坦克具有图片,不单单只是个圈圈。2.增加了血包功能,地图上会随机出现一个血包,我方坦克开过会增加血量。二、系统设计:1.Tank
2、Map类:实现游戏界面地图的初始化。2.PainTread类:绘制和重绘功能。3.DirectionHandler:监听用户的键盘输入。4.Tank类:实现坦克的初始化,绘制,移动,发射等功能。5.EnemyTank:实现敌方坦克的初始化,绘制,移动,发射等功能。6.Shell类:实现炮弹的初始化,绘制,移动,攻击功能。7.Explor类:实现爆炸的初始化。绘制功能,爆炸效果由绘制半径从小到大再到小的圆实现。8.Direction类:包含枚举。9.Blood类:用于实现血包的功能。三、功能实现。一.绘制地图功能:publicclassTankM
3、apextendsFrame{//定义地图的尺寸。publicstaticfinalintMAPWIDTH=800;publicstaticfinalintMAPHEIGHT=600;//我方坦克Tankt=null;//定义随机出现的血包Randomr=newRandom();ImagebufferImage=null;publicstaticjava.util.Listshells=newArrayList();//地方坦克集合publicstaticjava.util.List->enem
4、ys=newArrayList();publicstaticjava.util.Listbloods=newArrayList();//爆炸集合public.static.java.util.Listexplors=newjava.util.ArrayList();//敌方坦克数量默认10个publicintenemyCount=5;//主方法publicstaticvoidmain(String[]args){TankMaptv=newTankMap();tv.
5、init();}publicvoiddrawImage(){}//地图初始化方法publicvoidinit(){//初始化地图this.setSize(MAPWIDTH,MAPHEIGHT);this.setTitle("TankWar");this.setVisible(true);//添加键盘监听器this.addKeyListener(newDirectionHandler());//添加穿口关闭监听器this.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(Wi
6、ndowEventarg0){System.exit(0);}});//初始化我方坦克t=newTank(this);//初始化敌方坦克for(inti=0;i7、EEN);g.fillRect(0,0,MAPWIDTH,MAPHEIGHT);g.setColor(Color.RED);g.drawString("当前炮弹数目:"+shells.size(),20,40);g.drawString("生命值:",20,60);g.fillRect(65,55,t.getLife(),5);g.setColor(c);//画坦克t.draw(g);if(r.nextInt(10)==9&&bloods.size()==0)bloods.add(newBlood());if(r.nextInt(60)==7&8、&bloods.size()==1)bloods.remove(0);for(inti=0;i
7、EEN);g.fillRect(0,0,MAPWIDTH,MAPHEIGHT);g.setColor(Color.RED);g.drawString("当前炮弹数目:"+shells.size(),20,40);g.drawString("生命值:",20,60);g.fillRect(65,55,t.getLife(),5);g.setColor(c);//画坦克t.draw(g);if(r.nextInt(10)==9&&bloods.size()==0)bloods.add(newBlood());if(r.nextInt(60)==7&
8、&bloods.size()==1)bloods.remove(0);for(inti=0;i
此文档下载收益归作者所有