package Tetris;
import javax.microedition.midlet.*; import javax.microedition.lcdui.*;
/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: </p> * @author not attributable * @version 1.0 */
public class TetrisMIDlet extends MIDlet implements CommandListener{ Display display; TetrisGameCanvas tetrisGame;
Command newCommand = new Command("New Game", Command.SCREEN, 1); Command levelCommand = new Command("Level", Command.SCREEN, 2); Command changeCommand = new Command("Change", Command.OK, 1); Command cancelCommand = new Command("Cancel", Command.CANCEL, 2); Command exitCommand = new Command("Exit", Command.EXIT, 3);
public TetrisMIDlet() { display = Display.getDisplay(this); if (tetrisGame == null) { tetrisGame = new TetrisGameCanvas(); } tetrisGame.addCommand(newCommand); tetrisGame.addCommand(levelCommand); tetrisGame.addCommand(exitCommand); tetrisGame.setCommandListener(this); }
/** * 应用程序开始运行 * @throws javax.microedition.midlet.MIDletStateChangeException */ protected void startApp() throws javax.microedition.midlet.MIDletStateChangeException { /**@todo Implement this javax.microedition.midlet.MIDlet abstract method*/ display.setCurrent(tetrisGame); try { Thread thread = new Thread(tetrisGame); thread.start(); } catch(Error error) { destroyApp(false); notifyDestroyed(); } }
/** * 开始游戏等菜单命令的处理 * @param command * @param displayable */ public void commandAction(Command command, Displayable displayable) { if (command == newCommand) { tetrisGame.newGame(); } else if (command == levelCommand) { /* Item [] levelItem = {new Gauge("Level", true, 400, tetrisGame.getLevel())}; Form form = new Form("Change Level", levelItem); form.addCommand(changeCommand); form.addCommand(cancelCommand); form.setCommandListener(this); display.setCurrent(form); */ tetrisGame.pauseGame(); Form form = new Form("Change Level"); ChoiceGroup cg = new ChoiceGroup("Level", Choice.EXCLUSIVE); for (int i = 1; i <= 10; i++) { cg.append("Level " + String.valueOf(i), null); } cg.setSelectedIndex(10 - tetrisGame.getLevel() / 35, true); form.append(cg); form.addCommand(changeCommand); form.addCommand(cancelCommand); form.setCommandListener(this); display.setCurrent(form); } else if (command == exitCommand) { tetrisGame.exit(); destroyApp(false); notifyDestroyed(); } else if (command == changeCommand) { Form form = (Form)displayable; ChoiceGroup cg = (ChoiceGroup)form.get(0); tetrisGame.setLevel(350 - cg.getSelectedIndex() * 35); tetrisGame.resumeGame(); display.setCurrent(tetrisGame); /* Form form = (Form)displayable; Gauge gauge = (Gauge)form.get(0); tetrisGame.setLevel(gauge.getValue()); display.setCurrent(tetrisGame); */ } else if (command == cancelCommand) { display.setCurrent(tetrisGame); } }
protected void pauseApp() { /**@todo Implement this javax.microedition.midlet.MIDlet abstract method*/ // tetrisGame.pauseGame(); }
protected void destroyApp(boolean parm1) { /**@todo Implement this javax.microedition.midlet.MIDlet abstract method*/ display.setCurrent(null); System.gc(); } }

|