📄 walkcatmidlet.java
字号:
/*
* MIDlet 主类WalkCatMIDlet.java
* @author Shengli Lin
*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class WalkCatMIDlet
extends MIDlet
implements CommandListener {
// 游戏对象声明代码段
/**
* 停止游戏命令对象
*/
private Command exitCommand = new Command("Exit", Command.EXIT, 99);
/**
* 开始游戏命名对象
*/
private Command playCommand = new Command("Play", Command.SCREEN, 1);
/**
* 暂停游戏命令对象
*/
private Command pauseCommand = new Command("Pause", Command.SCREEN, 1);
/**
* 重新开始游戏命令对象
*/
private Command newCommand = new Command("Play Again", Command.SCREEN,
1);
//初始化画布对象
WalkCatCanvas catCanvas = null;
//初始化线程对象
WalkThread walkThread = null;
/**
* 在MIDlet构造器中初始化画布对象并在画布对象中添加命令对象
*/
public WalkCatMIDlet() {
catCanvas = new WalkCatCanvas(this);
catCanvas.addCommand(exitCommand);
catCanvas.addCommand(playCommand);
catCanvas.setCommandListener(this);
}
/**
* 切换命令到重新开是状态.
*/
void setNewCommand() {
catCanvas.removeCommand(pauseCommand);
catCanvas.removeCommand(playCommand);
catCanvas.addCommand(newCommand);
}
/**
* 切换命令到play 命令状态
*/
void setGoCommand() {
catCanvas.removeCommand(pauseCommand);
catCanvas.removeCommand(newCommand);
catCanvas.addCommand(playCommand);
}
/**
* 切换命令到pause 命令状态
*/
void setPauseCommand() {
catCanvas.removeCommand(newCommand);
catCanvas.removeCommand(playCommand);
catCanvas.addCommand(pauseCommand);
}
//----------------------------------------------------------------
/**
* MIDlet开始方法
*/
public void startApp() throws MIDletStateChangeException {
walkThread = new WalkThread(catCanvas);
catCanvas.start();
}
/**
* 销毁MIDlet对象并作垃圾回收(Garbage Collection)
*/
public void destroyApp(boolean unconditional) throws
MIDletStateChangeException {
catCanvas = null;
System.gc();
}
/**
* 暂停游戏执行
*/
public void pauseApp() {
setGoCommand();
}
/*
* 处理画布中的命令对象事件
*/
public void commandAction(Command c, Displayable s) {
if (c == playCommand) { //开始游戏
catCanvas.removeCommand(playCommand);
catCanvas.addCommand(pauseCommand);
walkThread.go();
}
else if (c == pauseCommand) { //暂停游戏
catCanvas.removeCommand(pauseCommand);
catCanvas.addCommand(playCommand);
}
else if (c == newCommand) { //重置游戏状态
catCanvas.removeCommand(newCommand);
catCanvas.addCommand(playCommand);
walkThread.go();
}
else if (c == exitCommand) { //退出游戏
try {
destroyApp(false);
notifyDestroyed();
}
catch (MIDletStateChangeException ex) {}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -