📄 foe.java
字号:
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 + -