预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共22页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

有些图片路径会出错要注意 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; Vector<Shot>shotm=newVector<Shot>(); 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 { Vector<Shot>ensh=newVector<Shot>(); Vector<EnemyTank>ets=newVector<EnemyTank>(); publicEnemyTank(intx,inty) { super(x,y); this.setColor(2); this.setDirect(2); } //获取MPanel上的敌人坦克 publicvoidsetets(Vector<EnemyTank>vv) { this.ets=vv; } //判断敌人的坦克是否碰撞 publicbooleanisTouch() { booleanb=false; EnemyTanket=null; switch(direct) { case0: for(inti=0;i<ets.size();i++) { et=ets.get(i); if(et!=this) { if(et.direct==0||et.direct==2) { if(this.x>=et.x&&this.x<=et.x+20&&this.y<=et.y+30&&this.y>et.y) { returntrue; } if(this.x+20>=et.x&&