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

📄 menu.java

📁 J2ME做的打砖块游戏,是学校的课程项目
💻 JAVA
字号:
import javax.microedition.lcdui.Canvas;import javax.microedition.midlet.MIDlet;public class Menu {    private Main midlet;    private Engine engine;    private EngineState state;    private AbstractMenu menu;    private MainMenu mainMenu;    private LevelMenu levelMenu;    private boolean stepEnabled = true;        public Menu() {        mainMenu = new MainMenu();        levelMenu = new LevelMenu();        menu = mainMenu;        state = new EngineState();    }    public int getSelected() {        return menu.getSelected();    }    public void keyPressed(int keycode) {        menu.keyPressed(keycode);    }    public MenuItem[] getItems() {        return menu.getItems();    }    public void setMIDlet(MIDlet midlet) {        this.midlet = (Main) midlet;    }    public void setEngine(Engine engine) {        this.engine = engine;        engine.getState(state);    }    public void showResumeItem(boolean show) {        mainMenu.showResumeItem(show);    }    public void resetSelected() {        menu.resetSelected();    }    private abstract class AbstractMenu {        protected MenuItem back = new MenuItem("Back", true);        protected MenuItem[] items;        private int selected = 0;        public void keyPressed(int keycode) {            if (stepEnabled) {                if ((keycode == Canvas.UP) && (selected > 0)) {                    setSelected(-1);                    return;                }                if ((keycode == Canvas.DOWN) &&                         (selected < (items.length -1))) {                    setSelected(1);                    return;                }            }            if (keycode == Canvas.FIRE) {                executeCommand(selected);            }                    }        public MenuItem[] getItems() {            return items;        }        public int getSelected() {            return selected;        }        private void setSelected(int step) {                    if (step > 0) {                selected++;            } else {                selected--;            }            if (!items[selected].isEnabled()) {                setSelected(step);            }                }        protected void resetSelected() {            selected = 0;        }        protected abstract void executeCommand(int selected);    }    static class MenuItem {        private String text;        private boolean enabled;        public MenuItem(String text, boolean enabled) {            this.text = text;            this.enabled = enabled;        }        public String getText() {            return text;        }        public boolean isEnabled() {            return enabled;        }        public void setText(String text) {            this.text = text;        }        public void setEnabled(boolean enabled) {            this.enabled = enabled;        }    }    private class MainMenu extends AbstractMenu {        protected static final int ITEM_RESUME = 0;        protected static final int ITEM_START = 1;		protected static final int ITEM_DOWNLOADLEVELS = 2;		protected static final int ITEM_HELP = 3;        protected static final int ITEM_EXIT = 4;        protected MenuItem[] mainItems1 = {            new MenuItem("Start Game", true),			new MenuItem("Download Levels", true),			new MenuItem("Game Help", true),            new MenuItem("Exit", true),        };        protected MenuItem[] mainItems2 = {            new MenuItem("Resume Game", true),            new MenuItem("Start Game", true),            new MenuItem("Download Levels", true),			new MenuItem("Game Help", true),                    new MenuItem("Exit", true),        };                public MainMenu() {            items = mainItems1;        }        protected void executeCommand(int selected) {            if ((items == mainItems1)) {                selected++;            }            switch (selected) {                case ITEM_START:                    levelMenu.setItems(engine.getAvailableLevels());                    menu = levelMenu;                    break;

				case ITEM_DOWNLOADLEVELS:
					engine.currentNum = 0;
					engine.totalNum = 10;
					engine.downloadLevel = true;
					engine.setState(Engine.PROGRESS);					break;				case ITEM_HELP:
					engine.setState(Engine.HELP);					break;                                case ITEM_EXIT:                    engine.stop();                    midlet.destroyApp(true);                    break;                case ITEM_RESUME:                    engine.setState(Engine.PLAY);                    engine.resumeGame();                    midlet.showCommandExit(true);            }                    }        protected void showResumeItem(boolean show) {            if (show) {                items = mainItems2;            } else {                items = mainItems1;            }        }    }    private class LevelMenu extends AbstractMenu {        protected MenuItem[] levelItems;        protected int levels = 0;        protected void executeCommand(int selected) {            if (selected < levels) {                engine.startGame(selected);                midlet.showCommandExit(true);                mainMenu.showResumeItem(true);            }            menu = mainMenu;            resetSelected();        }        public void setItems(int levels) {            this.levels = levels;            levelItems = new MenuItem[levels + 1];            for (int i = 0; i < levels; i++) {                levelItems[i] = new MenuItem("Level " + (i + 1), true);            }            levelItems[levels] = back;            items = levelItems;        }    }	}

⌨️ 快捷键说明

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