⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 foe.java

📁 这是一款竖版射击手机游戏
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
                                foe_property[11] =2;
                                tem_is_change = true;
                            }
                        }
                    }
                    if(foe_property[12] == 2){//此时精灵开始自由活动
                        int tem_direction11 = Math.abs(random1.nextInt() % 4) +1;
                        if(foe_property[11] != tem_direction11){
                            foe_property[11] = tem_direction11;
                            tem_is_change = true;
                        }
                    }
                }
                break;
            case 3://千骑长,不追逐玩家
            case 6://Boss
                if(tem_randoms == 0){//开始改变移动方向
                    int tem_direction1 = Math.abs(random1.nextInt() % 4) +1;
                    if(foe_property[11] != tem_direction1){
                        foe_property[11] = tem_direction1;
                        tem_is_change = true;
                    }
                }
                break;
            case 5://刀剑兵,在屏幕内任意移动
                sprite_fire++;
                if(sprite_fire >= 30){//此时进入,改变移动方向
                    sprite_fire = 0;
                    int direction_random = Math.abs(random.nextInt() % 2);
                    //System.out.println("direction_random=="+direction_random);
                    if(direction_random == 0){
                        if(getX() > (FlyGenCavans.play_sprite_x + Hero.hero_image_w)){//向左
                            //System.out.println("在玩家的右边");
                            if(foe_property[11] !=3 ){
                                foe_property[11] =3;
                                tem_is_change = true;
                            }
                        }else if(getX()< FlyGenCavans.play_sprite_x){//向右
                            //System.out.println("在玩家的左边");
                            if(foe_property[11] !=4){
                                foe_property[11] = 4;
                                tem_is_change = true;
                            }
                        }else if((getX()+this.getWidth())>FlyGenCavans.play_sprite_x || getX() <= (FlyGenCavans.play_sprite_x + Hero.hero_image_w)){
                            //System.out.println("在中间,指的是X方向的");
                            if(getY() > FlyGenCavans.play_sprite_y){
                                if(foe_property[11] !=1 ){
                                    foe_property[11] = 1;
                                    tem_is_change = true;
                                }
                            }else{
                                if(foe_property[11] != 2){
                                    foe_property[11] = 2;
                                    tem_is_change = true;
                                }
                            }
                        }
                    }else{
                        if(getY() > (FlyGenCavans.play_sprite_y + Hero.hero_image_h)){//向上
                            //System.out.println("在玩家的下边");
                            if(foe_property[11] != 1){
                                foe_property[11] = 1;
                                tem_is_change = true;
                            }
                        }else if((getY()+getHeight()) >= FlyGenCavans.play_sprite_y && getY() <= (FlyGenCavans.play_sprite_y + Hero.hero_image_h)){
                            //System.out.println("在中间,指的是Y方向的");
                            if(getX() > FlyGenCavans.play_sprite_x){
                                if(foe_property[11] !=3 ){
                                    foe_property[11] =3;
                                    tem_is_change = true;
                                }
                            } else{
                                if(foe_property[11] !=4){
                                    foe_property[11] = 4;
                                    tem_is_change = true;
                                }
                            }
                        }else{
                            if(foe_property[11] !=2 ){
                                foe_property[11] = 2;
                                tem_is_change = true;
                            }
                        }
                    }
                }
                break;
        }
        if(tem_is_change){
            set_foe_speed();//设置相应方向的速度
        }
    }
    
    /**
     *设置精灵停止帧动画
     *可以不要了
     */
    public void stopmove(int moveway){
        is_move = false;
        switch(moveway){
            case 0:
                setFrameSequence(Foe_Up_Stop);
                break;
            case 1 :
                setFrameSequence(Foe_Down_Stop);
                break;
            case 2:
                setFrameSequence(Foe_Left_Stop);
                break;
            case 3:
                setFrameSequence(Foe_Right_Stop);
                break;
        }
        setFrame(0);
    }
    /**
     *改变方向/////////////////////////////(面向)
     */
    public void change_direction(int directions){
        int[] tem_sequence = new int[3];
        if(foe_property[9]!=5){//foe_property[9]!=4 &&
            if(foe_property[9]==2 || foe_property[9]==1 || foe_property[9]==3){//弓骑兵,千骑长,雕骑兵
                if(foe_property[8] == 2)
                    setFrameSequence(this.Gongqibing_Up);
                else
                    setFrameSequence(this.Gongqibing_Left);
            }else if(foe_property[9] == 6){//Boss
                tem_sequence[0] = Foe_All_FrameSequence[foe_property[8]-1][(directions-1)*3];
                tem_sequence[1] = Foe_All_FrameSequence[foe_property[8]-1][(directions-1)*3+1];
                tem_sequence[2] = Foe_All_FrameSequence[foe_property[8]-1][(directions-1)*3+2];
                setFrameSequence(tem_sequence);
            }else if(foe_property[9] == 4){//驽步兵
                if(foe_property[11] == 1){//上
                    this.setTransform(Sprite.TRANS_NONE);
                    this.setFrameSequence(this.Nu_infantry_Up);//setFramsSequence(Up_FrameSequences);
                }
                if(foe_property[11] == 2){//下
                    this.setTransform(Sprite.TRANS_NONE);
                    this.setFrameSequence(this.Nu_infantry_Down);
                }
                if(foe_property[11] == 3){//左
                    this.setTransform(Sprite.TRANS_NONE);
                    this.setFrameSequence(this.Nu_infantry_Left);
                }
                if(foe_property[11] == 4){
                    this.setTransform(Sprite.TRANS_MIRROR);
                    this.setFrameSequence(this.Nu_infantry_Right);
                }
            }
        }else{//刀剑兵
            if(foe_property[11] == 1){//上
                this.setTransform(Sprite.TRANS_NONE);
                this.setFrameSequence(Knife_Up);//setFramsSequence(Up_FrameSequences);
            }
            if(foe_property[11] == 2){
                this.setTransform(Sprite.TRANS_NONE);
                this.setFrameSequence(Knife_Down);
            }
            if(foe_property[11] == 3){//左
                this.setTransform(Sprite.TRANS_NONE);
                this.setFrameSequence(Knife_Left);
            }
            if(foe_property[11] == 4){
                this.setTransform(Sprite.TRANS_MIRROR);
                this.setFrameSequence(Knife_Right);
            }
        }
        
        setFrame(0);
    }
    /**
     *刀剑兵的攻击
     */
    public void knif_foe_fire(Hero hero){
        if(foe_property[9]==5 && foe_property[3] ==1){
            if(collidesWith(hero, true)){//若与玩家接触则攻击
//                System.out.println("刀剑兵在攻击~~~~~~~~~~~~~~~~~~~~~~~~~~~");
                int servant_fire_face;
                if(getX() > hero.getX() && getY() == hero.getY()){//向左
                    this.setTransform(Sprite.TRANS_MIRROR);
                    servant_fire_face = 7;//3;
                }else if(getX() < hero.getX() && getY() == hero.getY()){//向右
                    this.setTransform(Sprite.TRANS_NONE);
                    servant_fire_face = 8;//4;
                }else if(getY() > (hero.getY()+hero.getHeight()-5) && getX() >= hero.getX() && getX()<=hero.getX()+hero.getWidth()){//向上2
                    this.setTransform(Sprite.TRANS_NONE);
                    servant_fire_face = 1;
                }else if(getY() < hero.getY() && getX() == hero.getX()){//向下1
                    this.setTransform(Sprite.TRANS_NONE);
                    servant_fire_face = 5;//2;
                }else if(getY() < hero.getY() && getX() < hero.getX()){//右下8
                    this.setTransform(Sprite.TRANS_MIRROR);
                    servant_fire_face = 3;//8;
                }else if(getY() < hero.getY() && getX() > hero.getX()){//左下
                    this.setTransform(Sprite.TRANS_NONE);
                    servant_fire_face = 4;//7;
                }else if(getY() > hero.getY() && getX() < hero.getX()){//左上5
                    this.setTransform(Sprite.TRANS_MIRROR);//MIRROR_ROT90
                    servant_fire_face = 7;//5;
                }else{//右上6.....getY() > foe_sprite.getY() && getX() > foe_sprite.getX()
                    this.setTransform(Sprite.TRANS_NONE);//MIRROR_ROT180
                    servant_fire_face = 8;//6;
                }
                
//        15,16,15,//底
//                4,5,4,
//                11,12,11,//左下
//                11,12,11,//右下
//                0,1,0,//上
//                0,1,0,
//                9,10,9,//中
//                9,10,9
                foe_property[3] = 0;//此时设置精灵不可移动
                foe_property[10] = 1;
                foe_property[4] = 0;//设置其速度为0
                foe_property[5] = 0;
                int[] tem_knife = new int[3];
                tem_knife[0] = this.Knife_Fire[(servant_fire_face-1)*3];
                tem_knife[1] = this.Knife_Fire[(servant_fire_face-1)*3+1];
                tem_knife[2] = this.Knife_Fire[(servant_fire_face-1)*3+2];
                setFrameSequence(tem_knife);//开火动画
            }
        }
    }
    
    /**
     *Boss调转马头
     */
    void boss_change(){
        if(foe_property[8] != old_face_direction && !is_change_over){
            setTransform(Sprite.TRANS_NONE);
            //System.out.println("要向左下转此时原来的面向为:"+old_face_direction);
            if(foe_property[8]==2){
                if(old_face_direction == 3)
                    this.setTransform(Sprite.TRANS_MIRROR);
            }
            foe_property[14] = 1;
            this.setFrameSequence(boss_change_direction);
            this.is_change_over = true;
        }
        if(foe_property[14]==1){
            if(getFrame()==1){
                this.foe_property[14] = 0;
                this.is_change_over = false;
            }
        }
        if(foe_property[14]==0){
            if(foe_property[8] == 3){//左下
                this.setTransform(Sprite.TRANS_NONE);
            }
            if(foe_property[8]==4){//右下
                this.setTransform(Sprite.TRANS_MIRROR);
            }
            if(foe_property[8]==2){//下
                this.setTransform(Sprite.TRANS_NONE);
            }
        }
        
    }
    /**
     *设置敌人已经结束生命时,要奖励的类型和奖励的图片
     *在敌人生成时间设定!!!
     */
    public void set_Award(){
        int award_num = random.nextInt()%100;
        if(award_num == 0){
            award_num = Math.abs(random.nextInt()%3)+4;
            award_image = FlyGenCavans.heroaward_array[award_num-1];
            foe_property[14] = award_num;
        }else{//其它时间奖励金钱
            this.award_image = FlyGenCavans.heroaward_array[0];
            this.foe_property[14] = 1;
        }
    }
    /**
     *检测玩家是否与雇佣兵相碰
     *相碰则生成相应的雇佣兵
     */
    public void check_servant_hit(Hero hero){
        if(collidesWith(hero, false) && hero.hero_property[9]!=1 && (foe_property[9]==14 || foe_property[9]==15)){

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -