📄 snakegame.java
字号:
package com.cienet.levi;
/**
* Copyright cienet.levi
*
* Snake.SnakeGame
*
* @author cienet
* @create 2008/01/11 13:34:10 - ver1.0
*/
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.List;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
public class SnakeGame extends MIDlet implements CommandListener {
//init resolution const
private final int RESOLUTION = 8;
//init level const
private final int LEVEL = 10;
//game list control unit
private List listGame;
//exit command
private Command cmdExit;
//next command
private Command cmdNext;
//back command
private Command cmdBack;
//resolution of textbox control unit
private TextBox tbResolution;
//level of textbox control unit
private TextBox tbLevel;
//resolution variable
private int resolution = RESOLUTION;
//level variable
private int level = LEVEL;
//snakecanvas object
private SnakeCanvas snakeCanvas;
//flag which sign is exit
public boolean isExit;
public SnakeGame() {
snakeCanvas = new SnakeCanvas();
listGame = new List("Game List", List.IMPLICIT);
listGame.append("Snake Game", null);
listGame.append("Resolution", null);
listGame.append("Level", null);
cmdExit = new Command("Exit", Command.EXIT, 0);
cmdNext = new Command("Start", Command.SCREEN, 0);
cmdBack = new Command("Confirm", Command.BACK, 0);
listGame.addCommand(cmdExit);
listGame.addCommand(cmdNext);
listGame.setCommandListener(this);
}
/**
* command action
*/
public void commandAction(Command cmd, Displayable d) {
if (d.equals(listGame)) {//if it's main list
if (cmd == List.SELECT_COMMAND || cmd == cmdNext) {//if command is next
if (d.equals(listGame)) {//if current displayable is listGame
switch (((List) d).getSelectedIndex()) {//is select snake game
case 0:
System.out.println(resolution + " " + level);
Logger.log(resolution, level, "commandAction.init");
snakeCanvas.setResolution(resolution);
snakeCanvas.setLevel(level);
Display.getDisplay(this).setCurrent(snakeCanvas);
try {
new Thread(snakeCanvas).start();
} catch (Error e) {
System.out.println("error");
}
break;
case 1://if select set resolution
tbResolution = new TextBox(
"Please input resolution(from 1 to 20)",
resolution + "",
2, TextField.NUMERIC);
tbResolution.addCommand(cmdBack);
tbResolution.setCommandListener(this);
Display.getDisplay(this).setCurrent(tbResolution);
break;
case 2://if select set level
tbLevel = new TextBox(
"Please input game level", level + "", 2,
TextField.NUMERIC);
tbLevel.addCommand(cmdBack);
tbLevel.setCommandListener(this);
Display.getDisplay(this).setCurrent(tbLevel);
break;
}
}
} else if (cmd == cmdExit) {//if comand is exit
notifyDestroyed();
}
}else if (cmd == cmdBack) {//if now is sublist and command is back
if(tbResolution != null){
resolution = Integer.parseInt(tbResolution.getString().trim());
if(resolution > 20 || resolution < 1)
resolution = RESOLUTION;
}
if(tbLevel != null){
level = Integer.parseInt(tbLevel.getString().trim());
if(level > 10 || level < 0)
level = LEVEL;
}
Display.getDisplay(this).setCurrent(listGame);
}
}
/**
* start app method which is extends fromMIDlet
*/
public void startApp() {
Display.getDisplay(this).setCurrent(listGame);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -