java 飞机大战

 时间:2026-02-14 19:16:54

1、分析游戏中的所有图片。他们都有共同的特性。

所以建立一个父类,

java 飞机大战

java 飞机大战

java 飞机大战

java 飞机大战

java 飞机大战

java 飞机大战

2、import java.awt.image.BufferedImage;

/** * ShootGame游戏中所有对象的父类 */public abstract class FlyingObject {  public BufferedImage image;  public int width;  public int height;  public int x;  public int y; //所有的飞行物都会走路,但是走路的方式各不相同 public abstract void step();  //检查飞行物是否越界 public abstract boolean checkOut();  //飞行物被子弹撞 /**  * 撞上了 返回 true  没撞上  false  * 一个飞行物和一个子弹碰撞  */ public boolean shootBy(Bullet b) {  //获取 子弹的 x,y坐标  int bx=b.x;  int by=b.y;  //获取 x1,x2  int x1=this.x-b.width;  int x2=this.x+this.width;  //获取 y1,y2  int y1=this.y-b.height;  int y2=this.y+this.height;  return bx>x1 && bx<x2 && by>y1 && by<y2; }  }

java 飞机大战

3、public class Airplane extends FlyingObject implements Enemy{ int speed; public Airplane() {  image=ShootGame.airplane;  width=image.getWidth();  height=image.getHeight();  x=(int) (Math.random()*(ShootGame.WIDTH-width));  y=-height;  speed=3; } //敌机的走路 是从上往下  则是Y轴增大 public void step() {  y+=speed; } @Override public boolean checkOut() {  return y>ShootGame.HEIGHT; } public int getScore() {  return 5; }}

java 飞机大战

4、package shootgame;/** * 奖励类型接口  * 实现该接口的 死亡 都有奖励 */public interface Award { //定义2个常量用来定义奖励类型 int DOUBLE_FIRE=0;//奖励双倍火力值 int LIFE=1;//奖励生命 int JG=2; //获取奖励类型 int getType();}

java 飞机大战

5、package shootgame;/** * 蜜蜂既是飞行物也是奖励类型 */public class Bee extends FlyingObject implements Award{ int xSpeed; int ySpeed; public Bee() {  image=ShootGame.bee;  width=image.getWidth();  height=image.getHeight();  x=(int) (Math.random()*(ShootGame.WIDTH-width));  y=-height;  xSpeed=1;  ySpeed=1; }  public void step() {  if(x<0 || x>ShootGame.WIDTH-this.width) {   xSpeed=-xSpeed;  }  y+=ySpeed;  x+=xSpeed; }

 @Override public boolean checkOut() {  return y>ShootGame.HEIGHT; }

 public int getType() {  //生成一个0-1之间的随机整数  return (int) (Math.random()*3); } }

java 飞机大战

6、package shootgame;

public class Boss extends FlyingObject{ int life; int speed; public Boss(){  life=130;  image=ShootGame.boss1;  height=image.getHeight();  width=image.getWidth();  x=5;  y=5;  speed=2; } public Boss(int x,int y){  life=10;  image=ShootGame.boss1;  height=image.getHeight();  width=image.getWidth();  this.x=x;  this.y=y;  speed=2; }  //boss移动 public void step() {      if(x<0||x>ShootGame.WIDTH-this.width){   speed=-speed;  }  x+=speed; } //发射子弹 public BossBullet [] shoot(){  BossBullet[] bbs = new BossBullet[1];  // 第一发子弹 是 英雄机的x+英雄机1/4宽度  bbs[0] = new BossBullet(this.x + this.width / 4, this.y +this.height);  return bbs; } //永不越界 public boolean checkOut() {  return false; }

}

java 飞机大战

  • 设备台账的内容项目
  • 南充到张家界自驾游自助游旅游精品攻略大全
  • 美图秀秀的反色特效滤镜怎样调整图片
  • 植物艺术画拼装可爱的猪八戒
  • 怎样转移Windows 7系统C盘的文件夹
  • 热门搜索
    土耳其旅游签证 浙江安吉旅游 凤凰山旅游攻略 海南国际旅游岛先行试验区 青岛旅游报价 泰国曼谷旅游攻略 赤峰旅游攻略 青芒果旅游网 成都旅游线路 旅游搜索引擎