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

📄 bullet.java

📁 Java射击小游戏源代码和图片都在里面可以直接玩的!
💻 JAVA
字号:
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;

public class Bullet extends Sprite {

	private final static int ENEMY_PLANE=1;
	private final static int PLAYER_PLANE=2;
	private final static int BOSS_PLANE=3;
	private int frameWidth, frameHeight;
	private int canvasWidth, canvasHeight;
	private boolean isAlive = false;
	private PlayerPlane playerPlane;
	private EnemyPlane enemyPlane;
	private Boss boss;
	private Bullet bullet;
	private int planeType;
	private int playerBulletSpeed;
	private int enemyBulletSpeed;
	public  final static int SMALL=1;
	public  final static int MIDDLE=2;
	public  final static int BIG=3;
	public  final static int DISPERSE=4;
	public int bulletType;
	public int playerBulletDirection;
	public int bossBulletDirection;
	
	public final static int BULLET_LEFT=0;
	public final static int BULLET_MIDDLE=1;
	public final static int BULLET_RIGHT=2;
	//public int bulletNum[][];//[i][0]表示x坐标
							 //[i][1]表示y坐标
							 //[i][2]表示x坐标速度
							 //[i][3]表示y坐标速度
	
	public Bullet(PlayerPlane playerPlane,Image image, int frameWidth, int frameHeight,int bulletType) {
		super(image, frameWidth, frameHeight);
		planeType=PLAYER_PLANE;
		this.bulletType=bulletType;
		this.playerPlane=playerPlane;
		this.frameWidth = frameWidth;
		this.frameHeight = frameHeight;
		defineReferencePixel(frameWidth / 2, frameHeight / 2);
		playerBulletSpeed=11;
		enemyBulletSpeed=10;
		defineCollisionRectangle(2, 5, 15, 14);
	}
	
	public Bullet(EnemyPlane enemyPlane,Image image, int frameWidth, int frameHeight) {
		super(image, frameWidth, frameHeight);
		planeType=ENEMY_PLANE;
		this.enemyPlane=enemyPlane;
		this.frameWidth = frameWidth;
		this.frameHeight = frameHeight;
		defineReferencePixel(frameWidth / 2, frameHeight / 2);
		playerBulletSpeed=11;
		enemyBulletSpeed=10;
	}
	public Bullet(Boss boss,Image image, int frameWidth, int frameHeight) {
		super(image, frameWidth, frameHeight);
		planeType=BOSS_PLANE;
		this.boss=boss;
		this.frameWidth = frameWidth;
		this.frameHeight = frameHeight;
		defineReferencePixel(frameWidth / 2, frameHeight / 2);
		playerBulletSpeed=11;
		enemyBulletSpeed=12;
	}

	public void setCanvasSize(int CanvasWidth, int CanvasHeight) {
		this.canvasWidth = CanvasWidth;
		this.canvasHeight = CanvasHeight;
	}

	public void setAlive(int x, int y) {
		isAlive = true;
		setPosition(x, y);
		
	}

	public void setAlive(boolean isAlive) {
		this.isAlive = isAlive;
	}

	public boolean isAlive() {
		return isAlive;
	}
	public void tick() {
		switch (planeType) {
		case PLAYER_PLANE:
			for (int i = 0; i < playerPlane.bulletVector.size(); i++) {
				bullet = (Bullet) playerPlane.bulletVector.elementAt(i);
				switch (bulletType) {
				case SMALL:
				case MIDDLE:
				case BIG:
					if (bullet.isAlive) {
						bullet.move(0, -playerBulletSpeed);
					}
					if (bullet.getY() < 0) {
						bullet.isAlive = false;
						playerPlane.bulletVector.removeElementAt(i);
						i--;
					}
					break;
				case DISPERSE:
					if (bullet.isAlive) {
						switch (bullet.playerBulletDirection) {
						case BULLET_LEFT:
							bullet.move(-4, -playerBulletSpeed);
							break;
						case BULLET_MIDDLE:
							bullet.move(0, -playerBulletSpeed);
							break;
						case BULLET_RIGHT:
							bullet.move(4, -playerBulletSpeed);
							break;
						}
					}
					if (bullet.getY() < 0) {
						bullet.isAlive = false;
						playerPlane.bulletVector.removeElementAt(i);
						i--;
					}
					break;
				}
			}
			break;
		case ENEMY_PLANE:
			for (int i = 0; i < enemyPlane.bulletVector.size(); i++) {
				bullet = (Bullet) enemyPlane.bulletVector.elementAt(i);
				if (bullet.isAlive) {
					bullet.move(0, enemyBulletSpeed);
				}
				if (bullet.getY() >canvasHeight) {
					bullet.isAlive = false;
					enemyPlane.bulletVector.removeElementAt(i);
					i--;
				}
			}
			break;	
		case BOSS_PLANE:
			for (int i = 0; i < boss.bulletVector.size(); i++) {
				bullet=(Bullet)boss.bulletVector.elementAt(i);
				
				if(bullet.isAlive ){
					switch (bullet.bossBulletDirection) {
					case BULLET_LEFT:
						bullet.move(-4, enemyBulletSpeed);
						break;
					case BULLET_MIDDLE:
						bullet.move(0, enemyBulletSpeed);
						break;
					case BULLET_RIGHT:
						bullet.move(4, enemyBulletSpeed);
						break;
					}		
				}
				if(bullet.getY()>canvasHeight||bullet.getX()>canvasWidth||bullet.getX()<0){
					bullet.isAlive=false;
					boss.bulletVector.removeElementAt(i);
					i--;
				}
			}
			break;
		}	
	}
	public void draw(Graphics g) {
		switch (planeType) {
		case PLAYER_PLANE:
			for (int i = 0; i < playerPlane.bulletVector.size(); i++) {
				bullet = (Bullet) playerPlane.bulletVector.elementAt(i);
				switch (bulletType) {
				case SMALL:
					g.setClip(bullet.getX() + 7, bullet.getY() - 8, 15, 24);
					g.drawImage(bullet.playerPlane.imgBullet,
							bullet.getX() + 7, bullet.getY() - 8, 0);
					break;
				case MIDDLE:
					g.setClip(bullet.getX() + 7, bullet.getY() - 8, 15, 24);
					g.drawImage(bullet.playerPlane.imgBullet,
							bullet.getX() + 7, bullet.getY() - 8 - 48, 0);
					break;
				case BIG:
					g.setClip(bullet.getX() + 7, bullet.getY() - 8, 15, 24);
					g.drawImage(bullet.playerPlane.imgBullet,
							bullet.getX() + 7, bullet.getY() - 8 - 24, 0);
					break;
				case DISPERSE:
					g.setClip(bullet.getX() + 7, bullet.getY() - 8, 15, 24);
					switch (bullet.playerBulletDirection) {
					case BULLET_LEFT:
						g.drawImage(bullet.playerPlane.imgBullet,
								bullet.getX() + 7, bullet.getY() - 8 - 72, 0);
						break;
					case BULLET_MIDDLE:
						g.drawImage(bullet.playerPlane.imgBullet,
								bullet.getX() + 7 - 15, bullet.getY() - 8 - 72,
								0);
						break;
					case BULLET_RIGHT:
						g.drawImage(bullet.playerPlane.imgBullet,
								bullet.getX() + 7, bullet.getY() - 8 - 96, 0);
						break;
					}
					break;
				}
			}
			break;
		case ENEMY_PLANE:			
			for (int i = 0; i < enemyPlane.bulletVector.size(); i++) {
			bullet = (Bullet) enemyPlane.bulletVector.elementAt(i);
			g.setClip(bullet.getX(), bullet.getY(), 7, 7);
			g.drawImage(bullet.enemyPlane.imgBullet, bullet.getX(), bullet.getY(), 0);
			}				
			break;
		case BOSS_PLANE:
				for (int i = 0; i < boss.bulletVector.size(); i++) {
					bullet = (Bullet) boss.bulletVector.elementAt(i);
					g.setClip(bullet.getX(), bullet.getY(), 7, 7);
					g.drawImage(bullet.boss.imgBullet, bullet.getX(), bullet.getY(), 0);	
				}
			break;
		}
		
	}

}

⌨️ 快捷键说明

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