package tank;
/**Shoot类,处理坦克的射击*/
public class Shoot {
static int[] myShoot = new int[40];//我的坦克子弹放在数组里面
static int[] enemyShoot = new int[100];//所有敌人共享这个数组
private int direct;//坦克的方向
private int who;//是敌人的坦克?还是自己的坦克
private int x1;//根据情况调整后子弹x的坐标
private int y1;//根据情况调整后子弹y的坐标
private int stepx;//子弹在x轴上移动的速度
private int stepy;//子弹在y轴上移动的速度
private int speed;//坦克的速度
static int indexMy=0;//我的子弹索引,数组满了之后indexMy=0;每次加4
static int indexEnemy=0;//敌人子弹索引,数组满了之后indexEnemy=0;每次加4
public Shoot(int x,int y,int direct,int step,int who){
speed=step+8;//根据坦克的速度,设定子弹的速度
this.direct=direct;
this.who=who;
if(direct==1){//if else用来调整子弹射击出去的位置
x1=x+20;
y1=y;
stepx=0;
stepy=-speed;
}else if(direct==2){
x1=x+40;
y1=y+20;
stepx=speed;
stepy=0;
}else if(direct==3){
x1=x+20;
y1=y+40;
stepx=0;
stepy=speed;
}else if(direct==4){
x1=x;
y1=y+20;
stepx=-speed;
stepy=0;
}
if(indexEnemy==enemyShoot.length-4){//表示数组满了
indexEnemy=0;
}if(indexMy==myShoot.length-4){//表示数组满了
indexMy=0;
}
if(who==1||who==2||who==3){//敌人的坦克
enemyShoot[indexEnemy]=x1;//子弹的坐标x
enemyShoot[indexEnemy+1]=y1;//子弹的坐标y
enemyShoot[indexEnemy+2]=stepx;//子弹在x轴移动的步伐
enemyShoot[indexEnemy+3]=stepy;//在t轴移动的步伐
indexEnemy+=4;
}else if(who==0||who==-1){//我的坦克
myShoot[indexMy]=x1;
myShoot[indexMy+1]=y1;
myShoot[indexMy+2]=stepx;
myShoot[indexMy+3]=stepy;
indexMy+=4;
}
}
}
Java实现支持双黑两人激战的 坦克大战源码(经典(3)
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:http://www.heiqu.com/32263800e2ba2511ec1c09c16f7009ff.html