⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainmenu.java

📁 这是我买的一本J2me手机游戏设计的一本书里的例子
💻 JAVA
字号:
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
public class MainMenu extends GameCanvas
{
    public static final int MENU = 0, SET = 1, ABOUT = 2, HELP = 3;

    private LLKMIDlet midlet; 

    private int selected = 0;
    private Image imgBackground;
    private Image imgMenu;
    private Image imgAbout;
    private Image imgSet;
    private Image imgHelp;
    private int level = 0;
    private int status = 0;
    private Graphics g;
    public MainMenu(LLKMIDlet midlet)
    {
        super(false);
        this.midlet = midlet;
        setFullScreenMode(true);

        try
        {
            imgBackground = Image.createImage("/background.png");
            imgMenu = Image.createImage("/menu.png");
            imgAbout = Image.createImage("/about.png");
            imgSet = Image.createImage("/set.png");
            imgHelp = Image.createImage("/help.png");
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        g = getGraphics();
        g.drawImage(imgBackground, 0, 0, g.TOP | g.LEFT);
        drawMenu();
    }
    private void drawMenu()
    {
        g = getGraphics();
        g.drawImage(imgMenu, 88, 114, g.TOP | g.LEFT);
        g.setColor(255, 0, 0);
        g.drawRect(98, 114+selected * 37, 125, 39);
        g.drawRect(99, 115+selected * 37, 123, 37);
        g.drawRect(100, 116+selected * 37, 121, 35);
    }
    private void drawSet()
    {
        g.drawImage(imgSet, 88, 114, g.TOP | g.LEFT);
        g.setColor(255, 0, 0);
        g.drawRect(98, 162+level * 37, 125, 39);
        g.drawRect(99, 163+level * 37, 123, 37);
        g.drawRect(100, 164+level * 37, 121, 35);
    }
    private void drawAbout()
    {
        g.drawImage(imgAbout, 88, 114, g.TOP | g.LEFT);
    }
    private void drawHelp()
    {
        g.drawImage(imgHelp, 88, 114, g.TOP | g.LEFT);
    }
    public void paint(Graphics g)
    {
        flushGraphics();
    }
    protected void keyPressed(int keyCode)
    {
        int g = getGameAction(keyCode);
        if (status == MENU)
        {
            switch (g)
            {
                case UP:
                case LEFT:
                    selected--;
                    if (selected ==  - 1)
                    {
                        selected = 4;
                    }
                    drawMenu();
                    break;
                case RIGHT:
                case DOWN:
                    selected++;
                    if (selected == 5)
                    {
                        selected = 0;
                    }
                    drawMenu();
                    break;
                case FIRE:
                    switch (selected)
                    {
                    case 0:
                        midlet.startGame(level);
                        break;
                    case 1:
                        status = 1;
                        drawSet();
                        break;
                    case 2:
                        status = 2;
                        drawHelp();
                        break;
                    case 3:
                        status = 3;
                        drawAbout();
                        break;
                    case 4:
                        midlet.exit();
                        break;
                    default:
                        break;
                    }
            }
            repaint();
            return ;
        }
        if (status == SET)
        {
            switch (g)
            {
                case UP:
                case LEFT:
                    level--;
                    if (level ==  - 1)
                    {
                        level = 2;
                    }
                    drawSet();
                    break;
                case RIGHT:
                case DOWN:
                    level++;
                    if (level == 3)
                    {
                        level = 0;
                    }
                    drawSet();
                    break;
                case FIRE:
                    status = 0;
                    drawMenu();
                default:
                    break;
            }
        }
        if (status == ABOUT || status == HELP)
        {
            status = 0;
            drawMenu();
        }
        repaint();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -