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

📄 menucanvas.java

📁 J2ME 3D 第一人称射击迷宫类手机游戏源码。
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
package myGame.gui;

import java.util.Calendar;
import java.util.Date;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.m3g.Graphics3D;

import myGame.gui.menu.BinaryPageItem;
import myGame.gui.menu.DefaultMenuPainter;
import myGame.gui.menu.ItemAction;
import myGame.gui.menu.Menu;
import myGame.gui.menu.MenuListener;
import myGame.gui.menu.MenuPage;
import myGame.gui.menu.PageItem;
import myGame.gui.popup.Popup;
import myGame.main.Audio;
import myGame.main.GameRecord;
import myGame.main.MazeCanvas;
import myGame.main.MyGame;
import myGame.main.Resources;
import myGame.main.RmsFacade;

/**
 * The <code>MenuCanvas</code> is the handler of the MyGame menu. There is
 * only one menu per game, thus the singleton pattern.
 * 
 * @see myGame.gui.menu.Menu
 * @author YuBingxing
 */
public class MenuCanvas extends PopupCanvas implements MenuListener,
		ItemAction, CommandListener {
	/** Item property key containing help text */
	protected static final int ITEM_HELP = 0;

	/** Action key for starting a local game */
	protected static final int ACTION_LOCAL_START = 1;

	/** Action key for resuming a local game */
	protected static final int ACTION_LOCAL_RESUME = 2;

	/** Action key for top view a local game */
	protected static final int ACTION_TOP_VIEW = 3;

	/** Action key for quitting midlet */
	protected static final int ACTION_QUIT = 4;

	/** Action key for showing specific score */
	protected static final int ACTION_SCORE = 5;

	/** Action key for turning audio on/off */
	protected static final int ACTION_AUDIO = 100;

	/** Action key for turning easy on/off */
	protected static final int ACTION_EASY = 101;

	/** Action key for turning normal on/off */
	protected static final int ACTION_NORMAL = 102;

	/** Action key for turning hard on/off */
	protected static final int ACTION_HARD = 103;

	/** Action key for turning veryhard on/off */
	protected static final int ACTION_VERYHARD = 104;

	/** Action key for turning 60s on/off */
	protected static final int ACTION_60 = 105;

	/** Action key for turning 120s on/off */
	protected static final int ACTION_120 = 106;

	/** Action key for turning 300s on/off */
	protected static final int ACTION_300 = 107;

	/** Action key for turning 600s on/off */
	protected static final int ACTION_600 = 108;

	/** Action key for turning nolimit on/off */
	protected static final int ACTION_NOLIMIT = 109;

	/** Action key for showing about box */
	protected static final int ACTION_ABOUT = 200;

	protected static final int ACTION_BGMUSIC1 = 201;

	protected static final int ACTION_BGMUSIC2 = 202;

	protected static final int ACTION_BGMUSIC3 = 203;

	/** Softbutton back command */
	protected static final Command CMD_BACK = new Command(Resources
			.getString(Resources.TXT_C_BACK), Command.BACK, 1);

	/** Softbutton help command */
	protected static final Command CMD_HELP = new Command(Resources
			.getString(Resources.TXT_C_HELP), Command.ITEM, 1);

	/** The menu instance */
	protected static Menu m_menu;

	/** The main menu page */
	public static MenuPage mainPage;

	/** Softbuttons of the backgammon menu canvas */
	protected SoftButtonControl m_softButtons;

	/** The background image */
	protected Image m_background;

	/** Special page with scores */
	protected MenuPage m_scorePage;

	/** The main continue page item */
	protected PageItem continueItem;

	/** The graphics3DpropertiesItem page item */
	protected PageItem graphics3DpropertiesItem;

	/** The top view page item */
	protected PageItem topviewItem;

	/** The scores item */
	protected PageItem m_scoresItem;

	/** Difficulty setting, easy, item */
	protected PersistenceFlagItem easyItem;

	/** Difficulty setting, normal, item */
	protected PersistenceFlagItem normalItem;

	/** Difficulty setting, hard, item */
	protected PersistenceFlagItem hardItem;

	/** Difficulty setting, veryhard, item */
	protected PersistenceFlagItem veryhardItem;

	/** Time Limit setting, 60second, item */
	protected PersistenceFlagItem s60Item;

	/** Time Limit setting, 120second, item */
	protected PersistenceFlagItem s120Item;

	/** Time Limit setting, 300second, item */
	protected PersistenceFlagItem s300Item;

	/** Time Limit setting, 600second, item */
	protected PersistenceFlagItem s600Item;

	/** Time Limit setting, nolimit, item */
	protected PersistenceFlagItem nolimitItem;

	protected PersistenceFlagItem bgmusic1;

	protected PersistenceFlagItem bgmusic2;

	protected PersistenceFlagItem bgmusic3;

	protected static Hashtable properties = Graphics3D.getProperties();

	/** Singleton instance */
	protected static MenuCanvas m_inst = null;

	public static int bgMusic = Audio.BGMUSIC1;

	/**
	 * Returns the singleton instance.
	 * 
	 * @return The singleton instance.
	 */
	public static MenuCanvas getInstance() {
		if (m_inst == null) {
			m_inst = new MenuCanvas();
		}
		return m_inst;
	}

	/**
	 * Creates the menu and initiates the gui controls
	 */
	protected MenuCanvas() {
		Resources.initGraphics3Dproperties();
		m_background = Resources.getImage(Resources.IMG_BACKGROUND);

		m_softButtons = new SoftButtonControl();

		// Create menu
		mainPage = new MenuPage(Resources
				.getChars(Resources.TXT_T_MYMAZE3DGAME), null);
		m_menu = new Menu(mainPage, this, new MyGameMenuPainter(getWidth()));

		// Menu titles
		MenuPage graphics3DpropertiesPage = new MenuPage(Resources
				.getChars(Resources.TXT_T_GARPHICS3DPROPERTIES), null);
		MenuPage setupPage = new MenuPage(Resources
				.getChars(Resources.TXT_T_SETTINGS), null);
		m_scorePage = new MenuPage(Resources.getChars(Resources.TXT_T_SCORES),
				null);
		MenuPage difficulyPage = new MenuPage(Resources
				.getChars(Resources.TXT_T_DIFFICULTY), null);
		MenuPage timelimitPage = new MenuPage(Resources
				.getChars(Resources.TXT_T_TIMELIMIT), null);
		MenuPage selectBgMusicPage = new MenuPage(Resources
				.getChars(Resources.TXT_T_TIMELIMIT), null);
		// Menu main page
		// new game
		PageItem newgameItem = new PageItem(Resources
				.getChars(Resources.TXT_I_NEWGAME), null, this, null,
				ACTION_LOCAL_START);
		newgameItem.setProperty(ITEM_HELP, Resources
				.getChars(Resources.TXT_H_NEWGAME));
		// continue game
		continueItem = new PageItem(Resources
				.getChars(Resources.TXT_I_CONTINUE), null, this, null,
				ACTION_LOCAL_RESUME);
		continueItem.setProperty(ITEM_HELP, Resources
				.getChars(Resources.TXT_H_CONTINUE));
		// graphics3Dproperties show
		graphics3DpropertiesItem = new PageItem(Resources
				.getChars(Resources.TXT_I_GARPHICS3DPROPERTIES), null, null,
				graphics3DpropertiesPage);
		graphics3DpropertiesItem.setProperty(ITEM_HELP, Resources
				.getChars(Resources.TXT_H_GRAPHICS3DPROPERTIES));
		// top view
		topviewItem = new PageItem(Resources.getChars(Resources.TXT_I_TOPVIEW),
				null, this, null, ACTION_TOP_VIEW);
		topviewItem.setProperty(ITEM_HELP, Resources
				.getChars(Resources.TXT_H_TOPVIEW));
		// scores item
		m_scoresItem = new PageItem(Resources
				.getChars(Resources.TXT_I_BT_SCORES), null, this, m_scorePage);
		m_scoresItem.setProperty(ITEM_HELP, Resources
				.getChars(Resources.TXT_H_SCORES));
		// settings item
		PageItem setupItem = new PageItem(Resources
				.getChars(Resources.TXT_I_SETTINGS), null, null, setupPage);
		setupItem.setProperty(ITEM_HELP, Resources
				.getChars(Resources.TXT_H_SETTINGS));

		PageItem aboutItem = new PageItem(Resources
				.getChars(Resources.TXT_I_ABOUT), null, this, null,
				ACTION_ABOUT);
		aboutItem.setProperty(ITEM_HELP, Resources
				.getChars(Resources.TXT_H_ABOUT));

		mainPage.addItem(newgameItem);
		mainPage.addItem(continueItem);
		mainPage.addItem(graphics3DpropertiesItem);
		mainPage.addItem(topviewItem);
		mainPage.addItem(m_scoresItem);
		mainPage.addItem(setupItem);
		mainPage.addItem(aboutItem);
		mainPage.addItem(new PageItem(Resources.getChars(Resources.TXT_I_EXIT),
				null, this, null, ACTION_QUIT));

		Vector keys = new Vector();
		int i = 0;
		for (Enumeration elements = properties.keys(); elements
				.hasMoreElements();) {
			keys.addElement(elements.nextElement());
		}
		PageItem[] graphics3DpropertiesItems = new PageItem[keys.size()];
		for (i = 0; i < keys.size(); i++) {
			graphics3DpropertiesItems[i] = new PageItem((keys.elementAt(i)
					+ " = " + properties.get(keys.elementAt(i))).toCharArray(),
					null, this, null);
			graphics3DpropertiesItems[i].setProperty(ITEM_HELP,
					Resources.graphics3Dproperties.get(keys.elementAt(i)));
			graphics3DpropertiesPage.addItem(graphics3DpropertiesItems[i]);
		}

		// Difficulty page
		easyItem = new PersistenceFlagItem(MyGame.EASY_OFF, Resources
				.getChars(Resources.TXT_I_S_D_EASY), Resources
				.getImage(Resources.IMG_ENABLED), Resources
				.getImage(Resources.IMG_DISABLED), ACTION_EASY);
		normalItem = new PersistenceFlagItem(MyGame.NORMAL_OFF, Resources
				.getChars(Resources.TXT_I_S_D_NORMAL), Resources
				.getImage(Resources.IMG_ENABLED), Resources
				.getImage(Resources.IMG_DISABLED), ACTION_NORMAL);
		hardItem = new PersistenceFlagItem(MyGame.HARD_OFF, Resources
				.getChars(Resources.TXT_I_S_D_HARD), Resources
				.getImage(Resources.IMG_ENABLED), Resources
				.getImage(Resources.IMG_DISABLED), ACTION_HARD);
		veryhardItem = new PersistenceFlagItem(MyGame.VERYHARD_OFF, Resources
				.getChars(Resources.TXT_I_S_D_VERYHARD), Resources
				.getImage(Resources.IMG_ENABLED), Resources
				.getImage(Resources.IMG_DISABLED), ACTION_VERYHARD);
		difficulyPage.addItem(easyItem);
		difficulyPage.addItem(normalItem);
		difficulyPage.addItem(hardItem);
		difficulyPage.addItem(veryhardItem);
		// Timelimit page
		s60Item = new PersistenceFlagItem(MyGame.S60_OFF, Resources
				.getChars(Resources.TXT_I_S_T_60), Resources
				.getImage(Resources.IMG_ENABLED), Resources
				.getImage(Resources.IMG_DISABLED), ACTION_60);
		s120Item = new PersistenceFlagItem(MyGame.S120_OFF, Resources
				.getChars(Resources.TXT_I_S_T_120), Resources
				.getImage(Resources.IMG_ENABLED), Resources
				.getImage(Resources.IMG_DISABLED), ACTION_120);
		s300Item = new PersistenceFlagItem(MyGame.S300_OFF, Resources
				.getChars(Resources.TXT_I_S_T_300), Resources
				.getImage(Resources.IMG_ENABLED), Resources
				.getImage(Resources.IMG_DISABLED), ACTION_300);
		s600Item = new PersistenceFlagItem(MyGame.S600_OFF, Resources
				.getChars(Resources.TXT_I_S_T_600), Resources
				.getImage(Resources.IMG_ENABLED), Resources
				.getImage(Resources.IMG_DISABLED), ACTION_600);
		nolimitItem = new PersistenceFlagItem(MyGame.NOLIMIT_OFF, Resources
				.getChars(Resources.TXT_I_S_T_NOLIMIT), Resources
				.getImage(Resources.IMG_ENABLED), Resources
				.getImage(Resources.IMG_DISABLED), ACTION_NOLIMIT);
		timelimitPage.addItem(s60Item);
		timelimitPage.addItem(s120Item);

⌨️ 快捷键说明

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