有些图片路径会出错要注意packagecom.tankgame;importjava.util.Vector;//坦克类classTank{intx=0;inty=0;intcolor=0;intspeed=1;intdirect=0;booleanisLive=true;publicTank(intx,inty){this.x=x;this.y=y;}publicintgetX(){returnx;}publicvoidsetX(intx){this.x=x;}publicintgetY(){returny;}publicvoidsetY(inty){this.y=y;}publicintgetDirect(){returndirect;}publicvoidsetDirect(intdirect){this.direct=direct;}publicintgetColor(){returncolor;}publicvoidsetColor(intcolor){this.color=color;}}//我的坦克classHeroextendsTank{Shotshot=null;Vectorshotm=newVector();publicHero(intx,inty){super(x,y);this.color=5;}//坦克具有一个打击敌人的方法publicvoidshotenemy(intx,inty,intdirect){switch(direct){case0:shot=newShot(this.x+10,this.y,0);shotm.add(shot);break;case1:shot=newShot(this.x+30,this.y+10,1);shotm.add(shot);break;case2:shot=newShot(this.x+10,this.y+30,2);shotm.add(shot);break;case3:shot=newShot(this.x,this.y+10,3);shotm.add(shot);break;}Threadth=newThread(shot);th.start();}//调整速度publicvoidmoveup(){y-=speed;}publicvoidmoveright(){x+=speed;}publicvoidmovedown(){y+=speed;}publicvoidmoveleft(){x-=speed;}}//敌人的坦克classEnemyTankextendsTankimplementsRunnable{Vectorensh=newVector();Vectorets=newVector();publicEnemyTank(intx,inty){super(x,y);this.setColor(2);this.setDirect(2);}//获取MPanel上的敌人坦克publicvoidsetets(Vectorvv){this.ets=vv;}//判断敌人的坦克是否碰撞publicbooleanisTouch(){booleanb=false;EnemyTanket=null;switch(direct){case0:for(inti=0;i=et.x&&this.x<=et.x+20&&this.y<=et.y+30&&this.y>et.y){returntrue;}if(this.x+20>=et.x&&this.x+20<=et.x+20&&this.y<=et.y+30&&this.y>et.y){returntrue;}}if(et.direct==1||et.direct==3){if(this.x>=et.x&&this.x<=et.x+30&&this.y<=et.y+20&&this.y>et.y){returntrue;}if(this.x+20>=et.x&&this.x+20<=et.x+30&&this.y<=et.y+20&&this.y>et.y){returntrue;}}}}break;case1:for(inti=0;i=et.x&&this.x+30<=et.x+20&&this.y<=et.y+30&&this.y>et.y){returntrue;}if(this.x+30>=et.x&&this.x+30<=et.x+20&&this.y+20<=et.y+30&&this.y+20>et.y){returntrue;}}if(et.direct==1||et.direct==3){if(this.x+30>=et.x&&this.x+30<=et.x+30&&this.y<=et.y+20&&this.y>et.y){returntrue;}if(this.x+30>=et.x&&this.x+30<=et.x+30&&this.y+20<=et.y+20&&this.y+20>et.y){returntrue;}}}}break;case2:for(inti=0;i=et.x&&this.x<=et.x+20&&this.y+30<=et.y+30&&this.y+30>et.y){returntrue;}if(this.x+20>=et.x&&this.x+20<=et.x+20&&this.y+30<=et.y+30&&this.y+30>et.y){returntrue;}}if(et.direct==1||et.direct==3){if(this.x>=et.x&&this.x<=et.x+30&&this.y+30<=et.y+20&&this.y+30>et.y){returntrue;}if(this.x+20>=et.x&&this.x+20<=et.x+30&&this.y+30<=et.y+20&&this.y+30>et.y){returntrue;}}}}break;case3:for(inti=0;i=et.x&&this.x+30<=et.x+20&&this.y<=et.y+30&&this.y>et.y){returntrue;}if(this.x+30>=et.x&&this.x+30<=et.x+20&&this.y+20<=et.y+30&&this.y+20>et.y){returntrue;}}if(et.direct==1||et.direct==3){if(this.x+30>=et.x&&this.x+30<=et.x+30&&this.y<=et.y+20&&this.y>et.y){returntrue;}if(this.x+30>=et.x&&this.x+30<=et.x+30&&this.y+20<=et.y+20&&this.y+20>e...