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

📄 leadingplanebullets.java

📁 一个J2ME的游戏,有源程序.是原创!适合S60的176*208的规格.
💻 JAVA
字号:
package src;

import java.io.IOException;

import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

public class LeadingPlaneBullets {

	int Bullets_X, Bullets_Y;

	int BulletsWidth, BulletsHeight;

	int BulletsSpeed;

	int BulletsState;

	int BulletsType;

	int BulletsDirection;

	boolean isFlagBullestTest;

	public Image BulletsImage;

	static Image BigBatteryBullets, SmallBatteryBullets;

	static Image[] imgBullet;

	static final int MAX_BULLET_BYPE = 9;

	static {
		imgBullet = new Image[MAX_BULLET_BYPE];
		for (int i = 0; i < imgBullet.length; i++) {
			try {
				imgBullet[i] = Image.createImage("/res/picture/bullet-"
						+ (i + 1) + ".png");
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		try {
			BigBatteryBullets = Image
					.createImage("/res/picture/BigBatterybullets.png");
			SmallBatteryBullets = Image.createImage("/res/picture/bullet.png");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 设置子弹位置处理方法
	 */

	public void setPosition(int Bullets_X, int Bullets_Y) {
		this.Bullets_X = Bullets_X;
		this.Bullets_Y = Bullets_Y;
	}

	/**
	 * 子弹相关属性初始化处理方法
	 */

	public void init(int BulletsType, int Bullets_X, int Bullets_Y,
			int BulletsSpeed, int BulletsDirection) {

		this.Bullets_X = Bullets_X;
		this.Bullets_Y = Bullets_Y;
		this.BulletsType = BulletsType;
		this.BulletsSpeed = BulletsSpeed;
		this.BulletsDirection = BulletsDirection;

		BulletsState = BULLET_STATE_MOVE;
		if (KingCanvas.LeadingPlaneType == 1) {
			switch (BulletsType) {
			case BULLET_TYPE_HERO_1:
				BulletsImage = imgBullet[BULLET_TYPE_HERO_1];
				break;
			case BULLET_TYPE_HERO_2:
				BulletsImage = imgBullet[BULLET_TYPE_HERO_2];
				break;
			case BULLET_TYPE_HERO_3:
				BulletsImage = imgBullet[BULLET_TYPE_HERO_3];
				break;
			case BULLET_TYPE_ENEMY_1:
				BulletsImage = BigBatteryBullets;
				break;
			case BULLET_TYPE_ENEMY_2:
				BulletsImage = SmallBatteryBullets;
				break;
			}
		}
		if (KingCanvas.LeadingPlaneType == 0) {
			switch (BulletsType) {
			case BULLET_TYPE_HERO_1:
				BulletsImage = imgBullet[BULLET_TYPE_HERO_4];
				break;
			case BULLET_TYPE_HERO_2:
				BulletsImage = imgBullet[BULLET_TYPE_HERO_5];
				break;
			case BULLET_TYPE_HERO_3:
				BulletsImage = imgBullet[BULLET_TYPE_HERO_6];
				break;
			case BULLET_TYPE_ENEMY_1:
				BulletsImage = BigBatteryBullets;
				break;
			case BULLET_TYPE_ENEMY_2:
				BulletsImage = SmallBatteryBullets;
				break;
			}
		}
		if (KingCanvas.LeadingPlaneType == 2) {
			switch (BulletsType) {
			case BULLET_TYPE_HERO_1:
				BulletsImage = imgBullet[BULLET_TYPE_HERO_7];
				break;
			case BULLET_TYPE_HERO_2:
				BulletsImage = imgBullet[BULLET_TYPE_HERO_8];
				break;
			case BULLET_TYPE_HERO_3:
				BulletsImage = imgBullet[BULLET_TYPE_HERO_9];
				break;
			case BULLET_TYPE_ENEMY_1:
				BulletsImage = BigBatteryBullets;
				break;
			case BULLET_TYPE_ENEMY_2:
				BulletsImage = SmallBatteryBullets;
				break;
			}
		}
		if (BulletsImage != null) {
			BulletsWidth = BulletsImage.getWidth();
			BulletsHeight = BulletsImage.getWidth();
		}
	}

	/**
	 * 子弹更新处理方法
	 */

	public void BulletsUpdate() {
		BulletsMove();
	}

	/**
	 * 子弹移动处理方法
	 */

	public void BulletsMove() {
		if (BulletsState != BULLET_STATE_MOVE)
			return;
		if (Bullets_Y < -BulletsHeight || Bullets_X < -BulletsWidth
				|| Bullets_Y > KingCanvas.SCREEN_HEIGHT
				|| Bullets_X > KingCanvas.SCREEN_WIDTH) {
			BulletsState = BULLET_STATE_DIE;
			return;
		}

		switch (BulletsDirection) {
		case BULLET_DIR_UP:
			Bullets_Y -= BulletsSpeed;
			break;
		case BULLET_DIR_DOWN:
			Bullets_Y += BulletsSpeed;
			break;
		case BULLET_DIR_LEFT:
			Bullets_X -= BulletsSpeed;
			break;
		case BULLET_DIR_RIGHT:
			Bullets_X += BulletsSpeed;
			break;
		case BULLET_DIR_LEFTUP:
			Bullets_X -= BulletsSpeed - 8;
			Bullets_Y -= BulletsSpeed;
			break;
		case BULLET_DIR_RIGHTUP:
			Bullets_X += BulletsSpeed - 8;
			Bullets_Y -= BulletsSpeed;
			break;
		case BULLET_DIR_ENEMYLEFTUP:
			Bullets_X -= BulletsSpeed;
			Bullets_Y -= BulletsSpeed;
			break;
		case BULLET_DIR_ENEMYRIGHTUP:
			Bullets_X += BulletsSpeed;
			Bullets_Y -= BulletsSpeed;
			break;
		case BULLET_DIR_ENEMYLEFTDOWN:
			Bullets_X -= BulletsSpeed;
			Bullets_Y += BulletsSpeed;
			break;
		case BULLET_DIR_ENEMYRIGHTDOWN:
			Bullets_X += BulletsSpeed;
			Bullets_Y += BulletsSpeed;
			break;
		}
	}

	/**
	 * 子弹碰撞处理方法
	 */

	public boolean isRam(int rx, int ry, int rw, int rh) {

		if (BulletsImage == imgBullet[BULLET_TYPE_HERO_1]) {
			if ((Bullets_X + 6) + (BulletsWidth - 12) <= rx
					|| (Bullets_X + 6) >= rx + rw
					|| (Bullets_Y + 2) + (BulletsHeight - 5) <= ry
					|| (Bullets_Y + 2) >= ry + rh) {
				isFlagBullestTest = false;
			} else {
				isFlagBullestTest = true;
			}
		}

		if (BulletsImage == imgBullet[BULLET_TYPE_HERO_2]) {
			if ((Bullets_X + 3) + (BulletsWidth - 6) <= rx
					|| (Bullets_X + 3) >= rx + rw
					|| (Bullets_Y + 2) + (BulletsHeight - 6) <= ry
					|| (Bullets_Y + 2) >= ry + rh) {
				isFlagBullestTest = false;
			} else {
				isFlagBullestTest = true;
			}
		}

		if (BulletsImage == imgBullet[BULLET_TYPE_HERO_3]) {
			if ((Bullets_X + 0) + (BulletsWidth - 0) <= rx
					|| (Bullets_X + 0) >= rx + rw
					|| (Bullets_Y + 2) + (BulletsHeight - 6) <= ry
					|| (Bullets_Y + 2) >= ry + rh) {
				isFlagBullestTest = false;
			} else {
				isFlagBullestTest = true;
			}
		}

		if (BulletsImage == imgBullet[BULLET_TYPE_HERO_4]) {
			if ((Bullets_X + 5) + (BulletsWidth - 10) <= rx
					|| (Bullets_X + 5) >= rx + rw
					|| (Bullets_Y + 1) + (BulletsHeight - 2) <= ry
					|| (Bullets_Y + 1) >= ry + rh) {
				isFlagBullestTest = false;
			} else {
				isFlagBullestTest = true;
			}
		}

		if (BulletsImage == imgBullet[BULLET_TYPE_HERO_5]) {
			if ((Bullets_X + 0) + (BulletsWidth - 0) <= rx
					|| (Bullets_X + 0) >= rx + rw
					|| (Bullets_Y + 1) + (BulletsHeight - 2) <= ry
					|| (Bullets_Y + 1) >= ry + rh) {
				isFlagBullestTest = false;
			} else {
				isFlagBullestTest = true;
			}
		}

		if (BulletsImage == imgBullet[BULLET_TYPE_HERO_6]) {
			if ((Bullets_X + 2) + (BulletsWidth - 4) <= rx
					|| (Bullets_X + 2) >= rx + rw
					|| (Bullets_Y + 0) + (BulletsHeight - 0) <= ry
					|| (Bullets_Y + 0) >= ry + rh) {
				isFlagBullestTest = false;
			} else {
				isFlagBullestTest = true;
			}
		}

		if (BulletsImage == imgBullet[BULLET_TYPE_HERO_7]) {
			if ((Bullets_X + 4) + (BulletsWidth - 8) <= rx
					|| (Bullets_X + 4) >= rx + rw
					|| (Bullets_Y + 4) + (BulletsHeight - 8) <= ry
					|| (Bullets_Y + 4) >= ry + rh) {
				isFlagBullestTest = false;
			} else {
				isFlagBullestTest = true;
			}
		}

		if (BulletsImage == imgBullet[BULLET_TYPE_HERO_8]) {
			if ((Bullets_X + 2) + (BulletsWidth - 4) <= rx
					|| (Bullets_X + 2) >= rx + rw
					|| (Bullets_Y + 2) + (BulletsHeight - 4) <= ry
					|| (Bullets_Y + 2) >= ry + rh) {
				isFlagBullestTest = false;
			} else {
				isFlagBullestTest = true;
			}
		}

		if (BulletsImage == imgBullet[BULLET_TYPE_HERO_9]) {
			if (Bullets_X + BulletsWidth <= rx || Bullets_X >= rx + rw
					|| Bullets_Y + BulletsHeight <= ry || Bullets_Y >= ry + rh) {
				isFlagBullestTest = false;
			} else {
				isFlagBullestTest = true;
			}
		}

		if (BulletsImage == BigBatteryBullets) {
			if ((Bullets_X + 4) + (BulletsWidth - 8) <= rx
					|| (Bullets_X + 4) >= rx + rw
					|| (Bullets_Y + 4) + (BulletsHeight - 8) <= ry
					|| (Bullets_Y + 4) >= ry + rh) {
				isFlagBullestTest = false;
			} else {
				isFlagBullestTest = true;
			}
		}

		if (BulletsImage == SmallBatteryBullets) {
			if (Bullets_X + BulletsWidth <= rx || Bullets_X >= rx + rw
					|| Bullets_Y + BulletsHeight <= ry || Bullets_Y >= ry + rh) {
				isFlagBullestTest = false;
			} else {
				isFlagBullestTest = true;
			}
		}

		if (isFlagBullestTest == false) {
			return false;
		} else {
			return true;
		}

	}

	/**
	 * 子弹画笔
	 */

	public void drawImage(Graphics g) {
		if (BulletsState == BULLET_STATE_DIE) {
			return;
		}
		if (BulletsType != BULLET_TYPE_ENEMY_1) {
			g.drawImage(BulletsImage, Bullets_X, Bullets_Y, 0);
		} else {
			int number = 0;
			switch (BulletsDirection) {
			case BULLET_DIR_UP:
			case BULLET_DIR_DOWN:
				number = 1;
				break;
			case BULLET_DIR_LEFT:
			case BULLET_DIR_RIGHT:
				number = 0;
				break;
			case BULLET_DIR_ENEMYLEFTUP:
			case BULLET_DIR_ENEMYRIGHTDOWN:
				number = 3;
				break;
			case BULLET_DIR_ENEMYLEFTDOWN:
			case BULLET_DIR_ENEMYRIGHTUP:
				number = 2;
				break;
			}
			KingCanvas
					.Brush(g, BulletsImage, Bullets_X, Bullets_Y, BulletsImage
							.getWidth(), BulletsImage.getWidth(), number, 0);
		}
	}

	static final int BULLET_SPEED_MIDDLE = 11;

	// static final int BULLET_SPEED_FAST = 0;

	static final int BULLET_TYPE_HERO_1 = 0;

	static final int BULLET_TYPE_HERO_2 = 1;

	static final int BULLET_TYPE_HERO_3 = 2;

	static final int BULLET_TYPE_HERO_4 = 3;

	static final int BULLET_TYPE_HERO_5 = 4;

	static final int BULLET_TYPE_HERO_6 = 5;

	static final int BULLET_TYPE_HERO_7 = 6;

	static final int BULLET_TYPE_HERO_8 = 7;

	static final int BULLET_TYPE_HERO_9 = 8;

	static final int BULLET_TYPE_ENEMY_1 = 10;

	static final int BULLET_TYPE_ENEMY_2 = 11;

	static final int BULLET_STATE_DIE = 0;

	static final int BULLET_STATE_MOVE = 1;

	static final int BULLET_STATE_BOMB = 2;

	static final int BULLET_DIR_UP = 0;

	static final int BULLET_DIR_DOWN = 1;

	static final int BULLET_DIR_LEFT = 2;

	static final int BULLET_DIR_RIGHT = 3;

	static final int BULLET_DIR_LEFTUP = 4;

	static final int BULLET_DIR_RIGHTUP = 5;

	static final int BULLET_DIR_ENEMYLEFTUP = 6;

	static final int BULLET_DIR_ENEMYRIGHTUP = 7;

	static final int BULLET_DIR_ENEMYLEFTDOWN = 8;

	static final int BULLET_DIR_ENEMYRIGHTDOWN = 9;

}

⌨️ 快捷键说明

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