Java飞机大战游戏代码

这是一个用Java编写的飞机大战游戏代码,包括了子弹、大敌机、小敌机、英雄机、蜜蜂、天空等飞行物的类实现,以及得分接口、奖励接口和主函数类。游戏对象继承自FlyingObject抽象类,并实现了Enemy和Award接口,使用BufferedImage加载图片资源。
摘要由CSDN通过智能技术生成

package cn.tedu.shoot;

import java.awt.image.BufferedImage;

/**

  • 子弹
  • @author

*/
public class Bullet extends FlyingObject{

private static BufferedImage images;
//静态代码块
static {
	images = loadImage("bullet.png");
}

private int speed;//速度
/**构造方法*/
public Bullet(int x, int y){
	super(8, 14, x, y);
	speed = 2;
}
/**子弹的移动*/
public void step(){
	this.y -= speed;
}
/**重写getImage()方法获取到图片*/
@Override
public BufferedImage getImage() {
	if (isLife()) {
		return images;
	}else if(isDead()){
		state = REMOVE;//修改状态为删除状态
	}
	return null;
}
/**检测是否越界*/
@Override
public boolean outOfBounds() {
	return this.y <= -this.height;
}

}
大敌机:

package cn.tedu.shoot;

import java.awt.image.BufferedImage;
import java.util.Random;

/**

  • 大敌机:
  • @author

*/
public class BigAirplane extends FlyingObject implements Enemy{
private static BufferedImage[] images;
// 静态代码块
static {
images = new BufferedImage[5];
for (int i = 0; i < images.length; i++) {
images[i] = loadImage(“bigplane” + i + “.png”);
}
}

int speed;// 速度

/** 构造方法 */
public BigAirplane() {
	super(99, 89);
	this.speed = 2;
}

public void step(){
	this.y += speed;
}

// 得到图片
int index = 1;

@Override
public BufferedImage getImage() {// 10M
	if (isLife()) {
		return images[0];
	} else if (isDead()) {// 图片的切换
		BufferedImage img = images[index++];
		if (index == images.length) {
			state = REMOVE;
		}
		return img;
	}
	/*
	 * images[index++]; index = 1; 10M images[1] index = 2 返回images[1] 20M
	 * images[2] index = 3 返回images[2] 30M images[3] index = 4 返回images[3]
	 * 40M images[4] index = 5 返回images[4]
	 */
	return null;
}

/**重写得分接口*/
@Override
public int getScore() {
	return 3;
}

}
小敌机:

package cn.tedu.shoot;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.util.Random;
/**

  • 小敌机:
  • @author

*/
public class Airplane extends FlyingObject implements Enemy{

private static BufferedImage[] images;
//静态代码块
static {
	images = new BufferedImage[5];
	for (int i = 0; i < images.length; i++) {
		images[i] = loadImage("airplane" + i + ".png");
	}
}
private int speed;//速度

/**构造方法*/
public Airplane(){
	super(49, 36);
	this.speed = 5;
}

/**移动*/
public void step(){
	this.y += speed;
}

//得到图片
int index = 1;
@Override
public BufferedImage getImage() {//10M
	if (isLife()) {
		return images[0];
	}else if(isDead()){//图片的切换
		BufferedImage img = images[index++];
		if (index == images.length) {
			state = REMOVE;
		}
		return img;
	}
	/*images[index++];
	 *   index = 1;
	 *   10M  images[1] index = 2   返回images[1]
	 *   20M  images[2] index = 3   返回images[2]
	 *   30M  images[3] index = 4   返回images[3]
	 * 	 40M  images[4] index = 5   返回images[4]
	 * 
	 */
	return null;
}

@Override
public int getScore() {
	return 1;
}

}
英雄机

package cn.tedu.shoot;

import java.awt.image.BufferedImage;

/**

  • 英雄机:
  • @author Administrator

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值