繁体中文
设为首页
加入收藏
当前位置:程序开发首页 >> 游戏开发 >> J2ME游戏之旅(3):游戏菜单

J2ME游戏之旅(3):游戏菜单

2006-09-09 01:01:59  作者:SilentVoid  来源:互联网  浏览次数:11  文字大小:【】【】【
简介:J2ME 游戏 教程现在,我要开始设计主菜单了.主菜单的结构并不复杂我选用List来派生出MainMenu,在这里的menu显然就是一个List,你移动方向键,按下,然后根据当前在List中选中哪个元素来决定做什么事情.import javax....
关键字:菜单 之旅 J2ME

J2ME 游戏 教程

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

主菜单的结构并不复杂

我选用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();

}

}

责任编辑:admin
相关文章