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

📄 enemys.java

📁 手机RPG游戏
💻 JAVA
字号:
package obj;
import main.*;

import java.util.*;
import javax.microedition.lcdui.*;

//敌机类  下面还有敌机的子弹
//继承自子弹类
public class Enemys extends Bullets{

public boolean showBoss=false;

  public Vector es;
  public Vector ebs;

  private int max;//敌机的最大数
  int re;//产生随机数
  int aw;
  int ah;
  int j=0;// 加敌机的计数器
  int k=0;// 出现BOSS的计数器
  int natality=0;//产生敌机的间隔
//  int myPlan_x=0;//玩家飞机的坐标
//  int myPlan_y=0;//玩家飞机的坐标

  public Enemys(int w,int h) {
    aw=w;
    ah=h;
    max=Cntrl.load.enemyMax;
    es=new Vector();
    ebs=new Vector();

  }
  private void Add(Enemy ene){
    if(es.size()>max)return;
    {es.addElement(ene);}
  }
  private void AddBullets(EnemyBullets eb){
  if(ebs.size()>max)return;
  {   ebs.addElement(eb); }
  }

//  public int bulletsNum(){return es.size();}
  public void Move(Bullets mybs){
    for(int i=0;i<es.size();i++){//移动敌机.
      Enemy ene=(Enemy)es.elementAt(i);
      ene.Move(mybs);}
    for(int i=0;i<ebs.size();i++)//移动敌机子弹
      {EnemyBullets eb=(EnemyBullets)ebs.elementAt(i);
      eb.Move();
    }
    for(int i=0;i<es.size();i++){//删除敌机.
      Enemy ene=(Enemy)es.elementAt(i);
      if(!ene.getAlive()){es.removeElement(ene);}}
    for(int i=0;i<ebs.size();i++){//删除敌机子弹
      EnemyBullets eb=(EnemyBullets)ebs.elementAt(i);
      if(!eb.getAlive()){ebs.removeElement(eb);}
        }
  }
  public void DrawSelves(Graphics g,Bullets mybs){
    makeEnemy();
    Move(mybs);
    for(int i=0;i<es.size();i++){
        Enemy ene=(Enemy)es.elementAt(i);
        ene.DrawSelf(g);
          }
    for(int i=0;i<ebs.size();i++)
          {
            EnemyBullets eb=(EnemyBullets)ebs.elementAt(i);
            eb.DrawSelf(g);
          }
  }
  private void makeEnemy(){//随机产生敌机
     j++;
     natality=Cntrl.load.enemyNatality;//产生敌机的间隔
     if(j%natality==0){
          int ebs_x=0;//敌人子弹的横向速度

          int ebs_y=Cntrl.load.pass+1;//敌人子弹的纵向速度是关数加 1 。
          ebs_y=ebs_y>10?10:ebs_y;//防止子弹过快。
         j=0;
         re=new Random().nextInt(aw);
         Enemy tempEnemy=new Enemy(re,0,aw,ah);
         EnemyBullets tempBullet=new EnemyBullets(re+tempEnemy.imgW/2,//将子弹从前面中间出
                                                  tempEnemy.imgH,
                                                  0,ebs_y,aw,ah);
         Add(tempEnemy);
         this.AddBullets(tempBullet);


         if(!Cntrl.gameBoard.boss.getAlive()){//出现过 k 个敌机就出现Boss.
           k++;
           if(0==k%Cntrl.load.bossShow  )
           {showBoss=true;
           Cntrl.gameBoard.boss.setBossalive(true);
           Cntrl.gameBoard.boss.bossInit();
           k=0;}
         }//出现过几个敌机就出现Boss.

   }//end if
   }//end addAerolite


}
 //*************************************************************************************
class EnemyBullets {//敌机子弹

protected int xSpeed=0;
protected int ySpeed=0;
private int xPos=0;
private int yPos=0;
protected boolean alive=true;
protected int screenW=0;//屏幕的宽高
protected int screenH=0;
protected Image img;
protected int imgW;
protected int imgH;
public EnemyBullets(int xp,int yp,int xs,int ys,int sw,int sh) {
  xPos=xp;//坐标
  yPos=yp;
  xSpeed=xs;//速度
  ySpeed=ys;
  screenW=sw;//
  screenH=sh;
  img=Cntrl.load.enemybulletImg[0];
  imgW=img.getWidth();
  imgH=img.getHeight();
}
public void DrawSelf(Graphics g){
  g.drawImage(img,xPos-imgW/2,yPos-imgH/2,Graphics.LEFT|Graphics.TOP);
}
public void Move(){

  xPos+=2*xSpeed;
  yPos+=2*ySpeed;
}
public boolean getAlive(){
  return alive&&xPos<screenW+(xPos)&&yPos>0&&yPos<screenH;
}

public int getXPos() {
  return xPos;
}
public int getYPos() {
  return yPos;
}






 }

⌨️ 快捷键说明

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