📄 firstmenu.java
字号:
//import maze.MazeGameCanvas;
import javax.microedition.lcdui.*;
public class FirstMenu extends Canvas implements CommandListener {
private int selected = 0;//选中的菜单项
public Display dis;
public Maze maze;
int x,y;
Font font=Font.getDefaultFont();
int fontHeight=font.getHeight();
public static final int[] OPTIONS = {0,1,2,3};
public static final String[] LABELS={"新游戏","游戏设置","游戏说明","退出"};
public FirstMenu(Maze mazeMid)
{
maze=mazeMid;
dis=Display.getDisplay(maze);
}
public void paint(Graphics g)
{
g.setColor(0xffffff);
g.fillRect(0,0,getWidth(),getHeight());
//g.setColor(0x000000);
//g.drawString("string", 0, 0, Graphics.TOP|Graphics.LEFT);
for(int j = 0;j<LABELS.length;j++){
x=this.getWidth()/2;
y=(this.getHeight()-3*fontHeight)/2+fontHeight*j;
if(selected == j){
g.setColor(0x6699cc);
}
else
{
g.setColor(0x0033ff);
}
g.drawString(LABELS[j],x,y,Graphics.HCENTER|Graphics.TOP);
}
}
public void commandAction(Command c,Displayable d)
{}
public void keyPressed(int keyCode)
{
int action=this.getGameAction(keyCode);
switch(action)
{
case Canvas.DOWN:if(selected<3){selected++;}break;
case Canvas.UP:if(selected>0){selected--;}break;
case Canvas.FIRE:
switch(selected){
case 0:MazeGameCanvas a=new MazeGameCanvas(dis,maze);a.initialize();dis.setCurrent(a);break;
case 1:choice chi=new choice(dis,maze);dis.setCurrent(chi);break;
case 2:Description description=new Description(dis,maze);dis.setCurrent(description);break;
case 3:maze.notifyDestroyed();break;
}
}
repaint();
}
}
class choice extends Canvas implements CommandListener
{
private int selected = Maze.isTime;
int x,y;
private String[] strChoice={"不计时","计时"};
Font font=Font.getDefaultFont();
int fontHeight=font.getHeight();
private Display dis;
private Maze mazeChoice;
public choice(Display display,Maze maze)
{
mazeChoice=maze;
dis=display;
this.setTitle("游戏设置");
for(int j=0;j<strChoice.length;j++)
{
if(selected==j)
{
strChoice[j]+="(√)";
}
}
}
public void paint(Graphics g)
{
g.setColor(0x70db93);
g.fillRect(0,0,getWidth(),getHeight());
for(int j = 0;j<strChoice.length;j++){
x=this.getWidth()/2;
y=(this.getHeight()-3*fontHeight)/2+fontHeight*j;
if(selected == j){
g.setColor(0x6699cc);
g.drawString(strChoice[j],x,y,Graphics.HCENTER|Graphics.TOP);
}
else
{
g.setColor(0x0033ff);
g.drawString(strChoice[j],x,y,Graphics.HCENTER|Graphics.TOP);
}
}
}
public void commandAction(Command c,Displayable d)
{
}
public void keyPressed(int keyCode)
{
int action=this.getGameAction(keyCode);
switch(action)
{
case Canvas.UP:if(selected==1){selected=0;}break;
case Canvas.DOWN:if(selected==0){selected=1;}break;
case Canvas.FIRE:Maze.isTime=selected;FirstMenu firstMenu=new FirstMenu(mazeChoice);dis.setCurrent(firstMenu);break;
}
repaint();
}
}
class Description extends Canvas implements CommandListener
{
private Display dis;
private String strGameDes="游戏说明:";
private Maze mazeDes;
private Command cmdReturn=new Command("返回",Command.BACK,1);
public Description(Display display,Maze maze)
{
mazeDes=maze;
dis=display;
this.setTitle("游戏说明");
this.addCommand(cmdReturn);
this.setCommandListener(this);
}
public void paint(Graphics g)
{
g.setColor(0xffffff);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(0x000000);
g.drawString(strGameDes, 0, 0, Graphics.TOP|Graphics.LEFT);
}
public void commandAction(Command c,Displayable d)
{
if(c==cmdReturn)
{
//dis.setCurrent(mazeDes);
FirstMenu firstMenu=new FirstMenu(mazeDes);
dis.setCurrent(firstMenu);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -