📄 leadingplanebullets.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 + -