Java实现支持双黑两人激战的 坦克大战源码(经典(3)

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;
        }
    }
                                   
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/32263800e2ba2511ec1c09c16f7009ff.html