坦克大战java源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
有些图片路径会出错要注意package com.tankgame;
import java.util.Vector;
//坦克类
class Tank
{
int x=0;
int y=0;
int color=0;
int speed=1;
int direct=0;
boolean isLive=true;
public Tank(int x,int y)
{
this.x=x;
this.y=y;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public int getDirect() {
return direct;
}
public void setDirect(int direct) {
this.direct = direct;
}
public int getColor() {
return color;
}
public void setColor(int color) {
this.color = color;
}
}
//我的坦克
class Hero extends Tank
{
Shot shot=null;
Vector
public Hero(int x,int y)
{
super(x,y);
this.color=5;
}
//坦克具有一个打击敌人的方法
public void shotenemy(int x,int y,int direct)
{
switch(direct)
{
case 0:
shot=new Shot(this.x+10,this.y,0);
shotm.add(shot);
break;
case 1:
shot=new Shot(this.x+30,this.y+10,1);
shotm.add(shot);
break;
case 2:
shot=new Shot(this.x+10,this.y+30,2);
shotm.add(shot);
break;
case 3:
shot=new Shot(this.x,this.y+10,3);
shotm.add(shot);
break;
}
Thread th=new Thread(shot);
th.start();
}
//调整速度
public void moveup()
{
y-=speed;
}
public void moveright()
{
x+=speed;
}
public void movedown()
{
y+=speed;
}
public void moveleft()
{
x-=speed;
}
}
//敌人的坦克
class EnemyTank extends Tank implements Runnable {
Vector
Vector
public EnemyTank(int x, int y)
{
super(x, y);
this.setColor(2);
this.setDirect(2);
}
//获取MPanel上的敌人坦克
public void setets(Vector
{
this.ets=vv;
}
//判断敌人的坦克是否碰撞
public boolean isTouch()
{
boolean b=false;
EnemyTank et=null;
switch(direct)
{
case 0:
for(int i=0;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) { return true; } if(this.x+20>=et.x&&this.x+20<=et.x+20&&this.y<=et.y+30&&this.y>et.y) { return true; } } 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) { return true; } if(this.x+20>=et.x&&this.x+20<=et.x+30&&this.y<=et.y+20&&this.y>et.y) { return true; } } }