资源描述:
《java练习_坦克大战version35》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、坦克大战version3.5Java2014/7/12界面:简介:代码:/***功能:我的坦克可以控制移动、发射子弹*敌方坦克未处理*java练习*韩顺平*/packageTankGame3;//packageMyTankGame4;importjava.awt.*;importjava.awt.event.KeyEvent;importjava.awt.event.KeyListener;importjava.util.*;importjavax.swing.*;importjava.util.Vector;publicclassMyTankGame4extends
2、JFrame{MyPanelmp=null;publicstaticvoidmain(String[]args){MyTankGame4mytankgame1=newMyTankGame4();}publicMyTankGame4(){mp=newMyPanel();//启动mp线程Threadt=newThread(mp);t.start();this.add(mp);this.addKeyListener(mp);this.setSize(400,300);this.setVisible(true);this.setDefaultCloseOperation(EX
3、IT_ON_CLOSE);}}classMyPanelextendsJPanelimplementsKeyListener,Runnable{//定义我的坦克,成员变量Herohero=null;//定义敌人的坦克组Vectorets=newVector();intenSize=3;publicvoidpaint(Graphicsg){super.paint(g);g.fillRect(0,0,400,300);//画出自己的坦克this.drawTank(hero.getX(),hero.getY(),g,this.her
4、o.direct,1);//从Vectorss中取出每一颗子弹,并画出for(inti=0;i5、i++){EnemyTanket=ets.get(i);if(et.isLive){this.drawTank(ets.get(i).getX(),ets.get(i).getY(),g,ets.get(i).getDirect(),0);}}}//写一个函数专门判断子弹是否击中敌人坦克publicvoidhitTank(Shots,EnemyTanket){//判断该坦克的方向switch(et.direct){//如果敌人的方向是上或者是下case0:case2:if(s.x>et.x&&s.x<(et.x+20)&&s.y>et.y&&s.y<(et.y+30)
6、){//击中了//子弹死亡s.isLive=false;//敌人坦克也要死亡et.isLive=false;}case1:case3:if(s.x>et.x&&s.x<(et.x+30)&&s.y>et.y&&s.y<(et.y+20)){//击中了//子弹死亡s.isLive=false;//敌人坦克也要死亡et.isLive=false;}}}//画出坦克函数(扩展)publicvoiddrawTank(intx,inty,Graphicsg,intdirect,inttype){//判断类型switch(type){case0:g.setColor(Color.
7、cyan);break;case1:g.setColor(Color.yellow);break;}//判断方向switch(direct){//向上case0://画出我的坦克(到时候再封装成一个函数)//1.画出左面的矩形//g.drawRect(hero.getX(),hero.getY(),5,30);g.fill3DRect(x,y,5,30,false);//2.画出右边的矩形g.fill3DRect(x+15,y,5,30,false);//3.画出坦克的中间矩形g.fill3DRect(x+5,y+5,10,20,false);//画