?? 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 + -