📄 plane_canvas.java
字号:
package Plane;
import java.io.IOException;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
public class Plane_Canvas extends GameCanvas implements Runnable {
Graphics g;
int x, y;
byte gamestate;
int count, indext, countstr;
static final byte LOGO = 0;// logo
static final byte MENU = 1;// 菜单
static final byte RUN = 2;// 运行
static final byte CONTINUE = 3;// 继续
static final byte HELP = 4;// 帮助
static final byte GAMEOVER = 5;// 游戏结束
Image logo[] = new Image[3];// logo图片
Image menu, menu1, m[];// 菜单图片
static final int UP_ = 1;
static final int DOWN_ = 2;
static final int LEFT_ = 3;
static final int RIGHT_ = 4;
static final int WIDHT = 176;// 屏幕宽
static final int HEIGHT = 220;// 屏幕高
public Plane_Canvas() {
super(false);
g = getGraphics();
for (int i = 0; i < logo.length; i++) {
try {
logo[i] = Image.createImage("/logo/logo" + (i + 1) + ".png");
} catch (IOException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
}
}
Option();
new Thread(this).start();
}
// 菜单选项
void Option() {
m = new Image[4];
for (int i = 0; i < m.length; i++) {
try {
m[i] = Image.createImage("/menu/m" + (i + 1) + ".png");
} catch (IOException e) {
e.printStackTrace();
}
}
try {
menu = Image.createImage("/menu/menu.png");
menu1 = Image.createImage("/menu/menu1.png");
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
// 表示层-------------------------------
protected void paint() {
int y_ = 120;
switch (gamestate) {
case LOGO:
g.drawImage(logo[indext], 0, 0, Graphics.TOP | Graphics.LEFT);
break;
case MENU:
g.drawImage(menu, 0, 0, Graphics.TOP | Graphics.LEFT);
for (int i = 0; i < m.length; i++) {
if (countstr == i) {
g.drawImage(menu1, 20, y_ - 10, Graphics.TOP
| Graphics.LEFT);
}
if (countstr == i)
g.setColor(255, 0, 0);
g.drawImage(m[i], 60, y_, Graphics.TOP | Graphics.LEFT);
y_ += 20;
}
break;
case RUN:
break;
case CONTINUE:
break;
case HELP:
break;
case GAMEOVER:
break;
}
flushGraphics();
}
// 控制层-------------------------------
public void keyPressed() {
int keystate = getKeyStates();
switch (gamestate) {
case LOGO:
if (++count >= 45) {
count = 0;
if (++indext >= logo.length) {
gamestate = MENU;
}
}
if (keystate != 0) {
gamestate = MENU;
}
break;
case MENU:
if ((keystate & UP_PRESSED) != 0) {
if (--countstr < 0)
countstr = m.length - 1;
}
if ((keystate & DOWN_PRESSED) != 0) {
if (++countstr >= m.length)
countstr = 0;
}
if ((keystate & FIRE_PRESSED) != 0) {
}
break;
case RUN:
break;
case CONTINUE:
break;
case HELP:
break;
case GAMEOVER:
break;
}
}
// 逻辑层-------------------------------
void logic() {
switch (gamestate) {
case LOGO:
break;
case MENU:
break;
case RUN:
break;
case CONTINUE:
break;
case HELP:
break;
case GAMEOVER:
break;
}
}
public void run() {
while (true) {
paint();
keyPressed();
logic();
try {
Thread.sleep(33);
} catch (InterruptedException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -