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

📄 menucanvas.java

📁 J2ME 3D 第一人称射击迷宫类手机游戏源码。
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
		timelimitPage.addItem(s300Item);
		timelimitPage.addItem(s600Item);
		timelimitPage.addItem(nolimitItem);

		// Background Music Select Page
		bgmusic1 = new PersistenceFlagItem(MyGame.BGMUSIC1, Resources
				.getChars(Resources.TXT_I_S_BGMUSIC1), Resources
				.getImage(Resources.IMG_ENABLED), Resources
				.getImage(Resources.IMG_DISABLED), ACTION_BGMUSIC1);
		bgmusic2 = new PersistenceFlagItem(MyGame.BGMUSIC2, Resources
				.getChars(Resources.TXT_I_S_BGMUSIC2), Resources
				.getImage(Resources.IMG_ENABLED), Resources
				.getImage(Resources.IMG_DISABLED), ACTION_BGMUSIC2);
		bgmusic3 = new PersistenceFlagItem(MyGame.BGMUSIC3, Resources
				.getChars(Resources.TXT_I_S_BGMUSIC3), Resources
				.getImage(Resources.IMG_ENABLED), Resources
				.getImage(Resources.IMG_DISABLED), ACTION_BGMUSIC3);
		selectBgMusicPage.addItem(bgmusic1);
		selectBgMusicPage.addItem(bgmusic2);
		selectBgMusicPage.addItem(bgmusic3);

		PersistenceFlagItem audioItem = new PersistenceFlagItem(
				MyGame.AUDIO_OFF, Resources.getChars(Resources.TXT_I_S_AUDIO),
				Resources.getImage(Resources.IMG_AUDIO_OFF), Resources
						.getImage(Resources.IMG_AUDIO_ON), ACTION_AUDIO);
		audioItem.setProperty(ITEM_HELP, Resources
				.getChars(Resources.TXT_H_S_AUDIO));

		PageItem bgmusicItem = new PageItem(Resources
				.getChars(Resources.TXT_I_S_BGMUSICSELECT), null, null,
				selectBgMusicPage);
		bgmusicItem.setLayout(PageItem.LAYOUT_ALIGN_RIGHT);
		bgmusicItem.setProperty(ITEM_HELP, Resources
				.getChars(Resources.TXT_H_S_BGMUSIC));

		PageItem difficultyItem = new PageItem(Resources
				.getChars(Resources.TXT_I_S_DIFFICULTY), null, null,
				difficulyPage);
		difficultyItem.setLayout(PageItem.LAYOUT_ALIGN_RIGHT);
		difficultyItem.setProperty(ITEM_HELP, Resources
				.getChars(Resources.TXT_H_S_DIFFICULTY));

		PageItem timelimitItem = new PageItem(Resources
				.getChars(Resources.TXT_I_S_TIMELIMIT), null, null,
				timelimitPage);
		timelimitItem.setLayout(PageItem.LAYOUT_ALIGN_RIGHT);
		timelimitItem.setProperty(ITEM_HELP, Resources
				.getChars(Resources.TXT_H_S_TIMELIMIT));

		setupPage.addItem(audioItem);
		setupPage.addItem(bgmusicItem);
		setupPage.addItem(difficultyItem);
		setupPage.addItem(timelimitItem);

		setFullScreenMode(true);

		// Initiate softbuttons
		m_softButtons.init(this, Font.getFont(Font.FACE_PROPORTIONAL,
				Font.STYLE_BOLD, Font.SIZE_SMALL), CMD_BACK, CMD_HELP);
		m_softButtons.setCommandListener(this);
		m_softButtons.enable(CMD_HELP, false);

		// Setup menu
		int menuPadding = 16;
		m_menu.setLocation(0, menuPadding);
		m_menu.setDimensions(getWidth(), getHeight() - menuPadding * 2);
		m_menu.setFrameData(10, 20);
		m_menu.setListener(this);
		m_menu.start();
	}

	/**
	 * Initializes the states of items and starts the muzak, called on an
	 * already initialized menu when it is focused again.
	 */
	public void initShow() {
		continueItem.setEnabled(MyGame.hasSavedLocalGame());
		topviewItem.setEnabled(MyGame.gameStarted);
		m_scoresItem.setEnabled(GameRecord.countRecords() > 0);
		m_scorePage.removeAllItems();
		Vector recs = GameRecord.getAllRecords();
		// for (int i = 0; i < recs.size(); i++) {
		// GameRecord rec = (GameRecord) recs.elementAt(i);
		// if (rec.getGameCount() > 0) {
		// m_scorePage.addItem(new GameRecordPageItem(rec));
		// }
		// }
		PageItem selItem = m_menu.getSelectedItem();
		if (selItem != null) {
			Object helpTxt = selItem.getProperty(ITEM_HELP);
			m_softButtons.enable(CMD_HELP, helpTxt != null);
		}
		// bgMusic = MyGame.getInt(MyGame.BGMUSIC_SET);
		System.out.println(bgMusic);
		Audio.playSound(bgMusic);
	}

	/**
	 * Paints the menu, the possible popup, and the softbuttons.
	 * 
	 * @param g
	 *            The graphics context to draw on.
	 */
//	int clip_Y = 50;
//	static int time_count = 0;
	protected void paint(Graphics g) {
		g.setColor(0x888833);
		g.fillRect(0, 0, getWidth(), getHeight());
		// 绘制菜单背景
//		new Timer().schedule(new TimerTask(){
//			public void run() {
//				if(time_count++ > 5){
//					time_count = 0;
//					if(clip_Y < -50)
//						clip_Y = 50;
//					clip_Y -= 5;
//				}
//				repaint();
//			}
//		}, 100, 100);
//		g.setClip(0, 40, getWidth(), 230);
//		g.drawImage(m_background, getWidth() / 2, getHeight() / 2 + clip_Y,
//				Graphics.VCENTER | Graphics.HCENTER);
		g.drawImage(m_background, getWidth() / 2, getHeight() / 2,
				Graphics.VCENTER | Graphics.HCENTER);
		g.setClip(0, 0, getWidth(), getHeight());
		m_menu.paint(g);
		m_softButtons.paint(g);
		if (getPopup() != null && getPopup().isActive()) {
			getPopup().paint(g);
		}
	}

	/**
	 * Called when user presses a key. Dispatches the keypress to possible
	 * popup, menu and softbuttons.
	 * 
	 * @param keyCode
	 *            The code of the key that is pressed.
	 */
	protected void keyPressed(int keyCode) {
		if (getPopup() != null && getPopup().isActive()) {
			getPopup().keyPressed(keyCode, getGameAction(keyCode));
//			repaint();
		} else {
			m_menu.keyPressed(keyCode);
			m_softButtons.keyPressed(keyCode);
		}
	}

	public void commandAction(Command c, Displayable d) {
		if (c == CMD_BACK) {
			m_menu.goBack();
		} else if (c == CMD_HELP) {
			PageItem item = m_menu.getSelectedItem();
			if (item != null) {
				char[] helpTxt = (char[]) item.getProperty(ITEM_HELP);
				// System.out.println(helpTxt);
				if (helpTxt != null) {
					MyGame.showPopup(helpTxt, Popup.ALT_OK, 0, 0, 0, null);
				}
			}
		}
	}

	/**
	 * ItemAction implementation, called from items in this menu. Instead of
	 * creating one class per action, we centralize the action behaviour here.
	 * Each action is identified by its id.
	 * 
	 * @param page
	 *            The page from which the action was called
	 * @param item
	 *            The item to which the action belongs
	 */
	public void itemAction(MenuPage page, PageItem item) {
		int id = item.getId();
		switch (id) {
		case ACTION_LOCAL_START:
			MyGame.startNewGame();
			try {
					this.wait();
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			break;
		case ACTION_LOCAL_RESUME:
			MyGame.resumeSavedLocalGame();
			break;
		case ACTION_TOP_VIEW:
			MyGame.topView();
			break;
		case ACTION_QUIT:
			MyGame.shutdown();
			break;
		case ACTION_SCORE:
			GameRecordPageItem grItem = (GameRecordPageItem) item;
			// String str = new String(grItem.getOpponentNameChars()) + "\n\n"
			// + Resources.getString(Resources.TXT_SCORE_PLAYER) + ": "
			// + new String(grItem.getPlayerScoreChars()) + "\n"
			// + Resources.getString(Resources.TXT_SCORE_OPPONENT) + ": "
			// + new String(grItem.getOpponentScoreChars()) + "\n"
			// + Resources.getString(Resources.TXT_SCORE_GAMES) + ": "
			// + new String(grItem.getGamesChars()) + "\n"
			// + Resources.getString(Resources.TXT_SCORE_DATE) + ": "
			// + new String(grItem.getLastDateChars()) + "\n\n";
			// char[] text = str.toCharArray();
			// MyGame.showPopup(text, Popup.ALT_OK, 0, 0, 0, null);
			break;
		case ACTION_AUDIO:
			if (RmsFacade.getBoolean(MyGame.AUDIO_OFF)) {
				Audio.stopSound(Audio.MUSIC);
			} else {
				Audio.playSound(Audio.MUSIC);
			}
			break;
		case ACTION_ABOUT:
			MyGame.showPopup(Resources.getChars(Resources.TXT_ABOUT),
					Popup.ALT_OK, 0, 0, 0, null);
			break;
		case ACTION_EASY: {
			MazeCanvas.corridorCount = 5;
			MazeCanvas.MAZE_SIDE_LENGTH = 250;
			RmsFacade.setInt(MyGame.DIFFICULT_SET, MazeCanvas.corridorCount);
			easyItem.setBoolean(true);
			normalItem.setBoolean(false);
			hardItem.setBoolean(false);
			veryhardItem.setBoolean(false);
			easyItem.setImage(Resources.getImage(Resources.IMG_ENABLED));
			normalItem.setImage(Resources.getImage(Resources.IMG_DISABLED));
			hardItem.setImage(Resources.getImage(Resources.IMG_DISABLED));
			veryhardItem.setImage(Resources.getImage(Resources.IMG_DISABLED));
		}
			break;
		case ACTION_NORMAL: {
			MazeCanvas.corridorCount = 10;
			MazeCanvas.MAZE_SIDE_LENGTH = 500;
			MazeCanvas.multiple = 12;
			RmsFacade.setInt(MyGame.DIFFICULT_SET, MazeCanvas.corridorCount);
			easyItem.setBoolean(false);
			normalItem.setBoolean(true);
			hardItem.setBoolean(false);
			veryhardItem.setBoolean(false);
			easyItem.setImage(Resources.getImage(Resources.IMG_DISABLED));
			normalItem.setImage(Resources.getImage(Resources.IMG_ENABLED));
			hardItem.setImage(Resources.getImage(Resources.IMG_DISABLED));
			veryhardItem.setImage(Resources.getImage(Resources.IMG_DISABLED));
		}
			break;
		case ACTION_HARD: {
			MazeCanvas.corridorCount = 14;
			MazeCanvas.MAZE_SIDE_LENGTH = 700;
			MazeCanvas.multiple = 16;
			RmsFacade.setInt(MyGame.DIFFICULT_SET, MazeCanvas.corridorCount);
			easyItem.setBoolean(false);
			normalItem.setBoolean(false);
			hardItem.setBoolean(true);
			veryhardItem.setBoolean(false);
			easyItem.setImage(Resources.getImage(Resources.IMG_DISABLED));
			normalItem.setImage(Resources.getImage(Resources.IMG_DISABLED));
			hardItem.setImage(Resources.getImage(Resources.IMG_ENABLED));
			veryhardItem.setImage(Resources.getImage(Resources.IMG_DISABLED));
		}
			break;
		case ACTION_VERYHARD: {
			MazeCanvas.corridorCount = 18;
			MazeCanvas.MAZE_SIDE_LENGTH = 900;
			MazeCanvas.multiple = 20;
			RmsFacade.setInt(MyGame.DIFFICULT_SET, MazeCanvas.corridorCount);
			easyItem.setBoolean(false);
			normalItem.setBoolean(false);
			hardItem.setBoolean(false);
			veryhardItem.setBoolean(true);
			easyItem.setImage(Resources.getImage(Resources.IMG_DISABLED));
			normalItem.setImage(Resources.getImage(Resources.IMG_DISABLED));
			hardItem.setImage(Resources.getImage(Resources.IMG_DISABLED));
			veryhardItem.setImage(Resources.getImage(Resources.IMG_ENABLED));
		}
			break;
		case ACTION_60: {
			MazeCanvas.timeLimit = 60;
			RmsFacade.setInt(MyGame.TIMELIMIT_SET, MazeCanvas.timeLimit);
			s60Item.setBoolean(true);
			s120Item.setBoolean(false);
			s300Item.setBoolean(false);
			s600Item.setBoolean(false);
			nolimitItem.setBoolean(false);
			s60Item.setImage(Resources.getImage(Resources.IMG_ENABLED));
			s120Item.setImage(Resources.getImage(Resources.IMG_DISABLED));
			s300Item.setImage(Resources.getImage(Resources.IMG_DISABLED));
			s600Item.setImage(Resources.getImage(Resources.IMG_DISABLED));
			nolimitItem.setImage(Resources.getImage(Resources.IMG_DISABLED));
		}
			break;
		case ACTION_120: {
			MazeCanvas.timeLimit = 120;
			RmsFacade.setInt(MyGame.TIMELIMIT_SET, MazeCanvas.timeLimit);
			s60Item.setBoolean(false);
			s120Item.setBoolean(true);
			s300Item.setBoolean(false);
			s600Item.setBoolean(false);
			nolimitItem.setBoolean(false);
			s60Item.setImage(Resources.getImage(Resources.IMG_DISABLED));
			s120Item.setImage(Resources.getImage(Resources.IMG_ENABLED));
			s300Item.setImage(Resources.getImage(Resources.IMG_DISABLED));
			s600Item.setImage(Resources.getImage(Resources.IMG_DISABLED));
			nolimitItem.setImage(Resources.getImage(Resources.IMG_DISABLED));
		}
			break;
		case ACTION_300: {
			MazeCanvas.timeLimit = 300;
			RmsFacade.setInt(MyGame.TIMELIMIT_SET, MazeCanvas.timeLimit);
			s60Item.setBoolean(false);
			s120Item.setBoolean(false);
			s300Item.setBoolean(true);
			s600Item.setBoolean(false);
			nolimitItem.setBoolean(false);
			s60Item.setImage(Resources.getImage(Resources.IMG_DISABLED));
			s120Item.setImage(Resources.getImage(Resources.IMG_DISABLED));
			s300Item.setImage(Resources.getImage(Resources.IMG_ENABLED));
			s600Item.setImage(Resources.getImage(Resources.IMG_DISABLED));
			nolimitItem.setImage(Resources.getImage(Resources.IMG_DISABLED));

⌨️ 快捷键说明

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