📄 pangxie.java~1~
字号:
package pangxie;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.Graphics;
import java.util.Timer;
class PangXie {
static Image[] images;
int x, y;
int type; //type==0的螃蟹会走斜线
int dir; //表方向 -1:left ,1:right,2:up,3:right_up,4:left_up
int rate = 3;
public static final int Left_X = -38;
public static final int Right_X = 202;
public static final int Base_Y = 150;
//方向常量
public static final int Dir_Left = -1;
public static final int Dir_Right = 1;
public static final int Dir_Up = 2;
public static final int Dir_RightUp = 3;
public static final int Dir_LeftUp = 4;
public static final int[] BasePointX = {37, 82, 127};
// Timer timer;
GameCanvas gc;
boolean isCrashed;
static {
images = new Image[5];
try {
for (int i = 0; i < images.length; i++) {
images[i] = Image.createImage("/res/p" + i + ".png");
}
} catch (Exception ex) {
}
}
public PangXie(int tt, int x, int y, int dir, GameCanvas gc) {
this.x = x;
this.y = y;
this.type = tt;
this.dir = dir;
this.gc = gc;
}
public void paint(Graphics g) {
g.drawImage(images[type], x, y, Graphics.LEFT | Graphics.TOP);
}
public void crawl() {
if (x == BasePointX[0]) {
switch (dir) {
case PangXie.Dir_Left:
if (type == 0) {
if (gc.man.logicPos == 0) {
dir = PangXie.Dir_Up;
} else {
//随机决定是向右上还是向上
dir = GameLogic.random.nextInt() % 2 == 0 ?
PangXie.Dir_RightUp : PangXie.Dir_Right;
}
} else {
dir = PangXie.Dir_Up;
}
break;
case PangXie.Dir_Right:
if (type == 0) {
if (gc.man.logicPos == 0) {
dir = PangXie.Dir_Up;
} else {
//随机决定是向右还是向上
dir = GameLogic.random.nextInt() % 2 == 0 ?
PangXie.Dir_RightUp : PangXie.Dir_Right;
}
} else {
//随机决定是向上还是继续向右
dir = GameLogic.random.nextInt() % 2 == 0 ?
PangXie.Dir_Up : PangXie.Dir_Right;
}
break;
case PangXie.Dir_Up:
case PangXie.Dir_LeftUp:
if (type == 0) {
if (gc.man.logicPos != 0) {
dir = PangXie.Dir_RightUp;
}
}
break;
}
} else if (x == BasePointX[1]) {
switch (dir) {
case PangXie.Dir_Left:
if (type == 0) {
if (gc.man.logicPos == 0) {
dir = PangXie.Dir_LeftUp;
} else if (gc.man.logicPos == 1) {
dir = PangXie.Dir_Up;
} else {
dir = PangXie.Dir_RightUp;
}
} else {
//随机决定是向上还是继续向左
dir = GameLogic.random.nextInt() % 2 == 0 ?
PangXie.Dir_Up : PangXie.Dir_Left;
}
break;
case PangXie.Dir_Right:
if (type == 0) {
if (gc.man.logicPos == 0) {
dir = PangXie.Dir_LeftUp;
} else if (gc.man.logicPos == 1) {
dir = PangXie.Dir_Up;
} else {
dir = PangXie.Dir_RightUp;
}
} else {
//随机决定是向上还是继续向右
dir = GameLogic.random.nextInt() % 2 == 0 ?
PangXie.Dir_Up : PangXie.Dir_Right;
}
break;
case PangXie.Dir_Up:
case PangXie.Dir_RightUp:
case PangXie.Dir_LeftUp:
if (type == 0) {
if (gc.man.logicPos == 2) {
dir = PangXie.Dir_RightUp;
}
if (gc.man.logicPos == 0) {
dir = PangXie.Dir_LeftUp;
}
}
break;
}
} else if (x == BasePointX[2]) {
switch (dir) {
case PangXie.Dir_Left:
if (type == 0) {
if (gc.man.logicPos == 2) {
dir = PangXie.Dir_Up;
} else {
//随机决定是向左上还是继续向左
dir = GameLogic.random.nextInt() % 2 == 0 ?
PangXie.Dir_Up : PangXie.Dir_LeftUp;
}
} else {
//随机决定是向左还是上
dir = GameLogic.random.nextInt() % 2 == 0 ?
PangXie.Dir_Up : PangXie.Dir_Left;
}
break;
case PangXie.Dir_Right:
if (type == 0) {
if (gc.man.logicPos == 2) {
dir = PangXie.Dir_Up;
} else {
//随机决定是向左上还是向上
dir = GameLogic.random.nextInt() % 2 == 0 ?
PangXie.Dir_LeftUp : PangXie.Dir_Up;
}
} else {
dir = PangXie.Dir_Up;
}
break;
case PangXie.Dir_Up:
case PangXie.Dir_RightUp:
if (type == 0) {
if (gc.man.logicPos != 2) {
dir = PangXie.Dir_LeftUp;
}
}
break;
}
}
switch (dir) {
case PangXie.Dir_Left:
x -= rate;
break;
case PangXie.Dir_LeftUp:
x -= rate;
y -= rate;
break;
case PangXie.Dir_Right:
x += rate;
break;
case PangXie.Dir_RightUp:
x += rate;
y -= rate;
break;
case PangXie.Dir_Up:
y -= rate;
break;
}
if (y < 60) {
gc.logic.gameOver();
}
gc.repaint();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -