J2ME游戏之旅(3): 编码(2)

王朝java/jsp·作者佚名  2006-06-09
宽屏版  字体: |||超大  

现在,我要开始设计主菜单了.

主菜单的结构并不复杂

我选用List来派生出MainMenu,在这里的menu显然就是一个List,你移动方向键,按下,然后根据当前在List中选中哪个元素来决定做什么事情.

import javax.microedition.lcdui.*;

public class MainMenu extends List implements CommandListener{

private Flight midlet; //传入 Flight的实例,因为需要调用 Flight 的 protected 方法

private Command exitCommand = new Command("Exit",Command.EXIT,1);

private Command selectCommand = new Command("Select",Command.ITEM,1);

public MainMenu(Flight midlet){

super("Death Flight",Choice.IMPLICIT); //调用父类的构造函数

this.midlet = midlet;

append("PLAY",null); //添加List元素

append("OPTION",null);

append("HIGH SCORES",null);

append("HELP",null);

append("EXIT",null);

addCommand(exitCommand); //添加Command

addCommand(selectCommand);

setCommandListener(this);

}

public void commandAction(Command c, Displayable d){

if(c == exitCommand){

this.midlet.Quit(); // 如果按下quit键,则直接退出

return;

}else {

processMenu(); //其他键转由 processMenu来处理

return;

}

}

private void processMenu(){

try{

List down = (List)midlet.display.getCurrent();

switch(down.getSelectedIndex()){ //根据选择项目的下标来判断当前选择了菜单中的哪一项

case 0:

scnGame(); // 开始游戏

break;

case 1:

scnOption(); // 显示菜单

break;

case 2:

scnHighScores(); // 高分纪录

break;

case 3:

scnHelp();

break;

default:

break;

}

}catch (Exception e){

System.out.println("Error when process Main Menu. " + e);

}

}

private void scnGame(){

midlet.startGame(); // 通过Flight类开始游戏

}

private void scnOption(){

//我太懒,还没写好option

}

private void scnHighScores(){

midlet.showHighScore();

}

private void scnHelp(){

midlet.showHelp();

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有