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

📄 menu.java

📁 thq 发布的《worms》 motorola 源代码
💻 JAVA
字号:

import java.io.DataInputStream;
import javax.microedition.lcdui.*;
import javax.microedition.media.MediaException;
import javax.microedition.media.Player;
import javax.microedition.midlet.MIDlet;

public class Menu extends List implements CommandListener {

	private MIDlet midlet;

	private List menu;

	private List startMenu;

	private Command startMenuBack;

	private List optionsMenu;

	private Form instructionsMenu;

	private Form aboutMenu;

	private Form surrenderMenu[];

	public static boolean optionFlags[] = { true, true };

	public boolean humanVsHuman;

	private boolean stop;

	private boolean languageSelect;

	private int languageCode;

	public static String softkeyLabelWeapon;

	public static String softkeyLabelExit;
	
	//Image startImg;
	
	private Command GX10Command_OK = new Command("确定", 2, 1);;

	public static boolean soundEnabled() {
		return optionFlags[0];
	}

	public static boolean vibratorEnabled() {
		return optionFlags[1];
	}
	
	public void commandAction(Command command, Displayable displayable) {
		if (displayable == this) {
			int i = this.getSelectedIndex();
			if (i == 0) {
				Worms.runTimes = 0;
				stop = true;
				//Display.getDisplay(midlet).setCurrent(startMenu);
			}
			if (i == 1)
				Display.getDisplay(midlet).setCurrent(startMenu);
			if (i == 2)
				Display.getDisplay(midlet).setCurrent(optionsMenu);
			if (i == 3)
				Display.getDisplay(midlet).setCurrent(instructionsMenu);
			if (i == 4)
				Display.getDisplay(midlet).setCurrent(aboutMenu);
			if (i == 5) {
				Display.getDisplay(midlet).setCurrent(null);
				Worms.instance.destroyApp(true);
			}
		} else if (displayable == menu) {
			int i = menu.getSelectedIndex();
			if (i == 0)
				Display.getDisplay(midlet).setCurrent(startMenu);
			if (i == 1)
				stop = true;
			if (i == 2)
				Display.getDisplay(midlet).setCurrent(optionsMenu);
			if (i == 3)
				Display.getDisplay(midlet).setCurrent(instructionsMenu);
			if (i == 4)
				Display.getDisplay(midlet).setCurrent(aboutMenu);
			if (i == 5) {
				Display.getDisplay(midlet).setCurrent(null);
				Worms.instance.destroyApp(true);
			}
		} else if (displayable == optionsMenu) {
			if (Worms.loadTimes != 0) {
				Display.getDisplay(Worms.instance).setCurrent(menu);
			} else {
				Display.getDisplay(Worms.instance).setCurrent(this);
			}
			optionsMenu.getSelectedFlags(optionFlags);
			int j = getSelectedIndex();

			if (optionFlags[0]) {
				//System.out.println("=====caodan=====");
				RMS.put("worms.setup.sound", 1);
				//Game.sound.close();
//				Game.sound.getPlayer(1);
//				Game.sound.start();
				//Game.sound_THEMETUNE.start();
			} else {
				RMS.put("worms.setup.sound", 0);
//				Game.sound.stop();
				//Game.sound_THEMETUNE.stop();
			}

			/*if (optionFlags[1])
				RMS.put("worms.setup.vibration", 1);
			else
				RMS.put("worms.setup.vibration", 0);*/
			RMS.save();
		} else if (displayable == instructionsMenu) {
			if (Worms.loadTimes != 0) {
				Display.getDisplay(Worms.instance).setCurrent(menu);
			} else {
				Display.getDisplay(Worms.instance).setCurrent(this);
			}
		}
		else if (displayable == aboutMenu) {
			if (Worms.loadTimes != 0) {
				Display.getDisplay(Worms.instance).setCurrent(menu);
			} else {
				Display.getDisplay(Worms.instance).setCurrent(this);
			}
		}
		else if (displayable == surrenderMenu[0]) {
			if (Worms.loadTimes != 0) {
				Display.getDisplay(Worms.instance).setCurrent(menu);
			} else {
				Display.getDisplay(Worms.instance).setCurrent(this);
			}
		}
		else if (displayable == surrenderMenu[1]) {
			if (Worms.loadTimes != 0) {
				Display.getDisplay(Worms.instance).setCurrent(menu);
			} else {
				Display.getDisplay(Worms.instance).setCurrent(this);
			}
		}
		else if (displayable == startMenu)
			if (command != startMenuBack) {
				int k = startMenu.getSelectedIndex();
				if (k == 0)
					humanVsHuman = true;
				else if (k == 1)
					humanVsHuman = false;
				if (Landscape.currentLandscapeIndex < 3)
					Landscape.currentLandscapeIndex++;
				else
					Landscape.currentLandscapeIndex = 0;
				stop = true;
				Worms.loadTimes = 0;
			} else {
				if (Worms.loadTimes != 0) {
					Display.getDisplay(Worms.instance).setCurrent(menu);
				} else {
					Display.getDisplay(Worms.instance).setCurrent(this);
				}
			}
	}

	public void run() {
		
		if (languageSelect || Game.pauseLostTeam == -2)
			if (Worms.loadTimes != 0) {
				Display.getDisplay(midlet).setCurrent(menu); 
			} else {
				Display.getDisplay(Worms.instance).setCurrent(this);
			}
		else
			Display.getDisplay(Worms.instance).setCurrent(
					surrenderMenu[Game.pauseLostTeam]);
		languageSelect = false;
		for (stop = false; !stop;) {
			if (optionFlags[0] && Game.sound.isStop()) {
				Game.sound.agoType = 0;
				//Game.sound.getPlayer(1);
				//Game.sound.start();
			}
			try {
				Thread.sleep(10L);
			} catch (Exception exception) {
			}
		}

	}

	private void init() {
		try {
			/*
			 * String s; switch (languageCode) { case 1: // '\001' s =
			 * "fr_utf8.txt"; Game.player = new Imp("/player_strip_fr.png", 3);
			 * softkeyLabelWeapon = "Arme"; break;
			 * 
			 * case 2: // '\002' s = "es_utf8.txt"; Game.player = new
			 * Imp("/player_strip_es.png", 3); softkeyLabelWeapon = "Arma";
			 * break;
			 * 
			 * case 3: // '\003' s = "de_utf8.txt"; Game.player = new
			 * Imp("/player_strip_de.png", 3); softkeyLabelWeapon = "Waffe";
			 * break;
			 * 
			 * default: s = "en_utf8.txt"; Game.player = new
			 * Imp("/player_strip_en.png", 3); softkeyLabelWeapon = "Weapon";
			 * break; } java.io.InputStream inputstream =
			 * getClass().getResourceAsStream(s); DataInputStream
			 * datainputstream = new DataInputStream(inputstream);
			 * datainputstream.readUTF(); datainputstream.readUTF();
			 * datainputstream.readUTF(); datainputstream.readUTF();
			 * datainputstream.readUTF();
			 */
			Game.player = new Imp("/player_strip_en.png", 3);
			softkeyLabelWeapon = "武器";
			String s1 = "百战天虫";
			String s2 = "返回";
			String s3 = "开始新游戏";
			String s4 = "设置";
			String s5 = "帮助";
			String s6 = "关于";
			softkeyLabelExit = "退出";
			menu = new List(s1, 3);
			menu.append(s3, Splash.startImg);
			menu.append("继续游戏", Splash.againImg);
			menu.append(s4, Splash.setImg);
			menu.append(s5, Splash.helpImg);
			menu.append(s6, Splash.aboutImg);
			menu.append(softkeyLabelExit, Splash.exitImg);
			menu.addCommand(GX10Command_OK);
			menu.setCommandListener(this);
			startMenu = new List(s3, 3);
			startMenu.append("玩家 对 玩家", null);
			startMenu.append("玩家 对 电脑", null);
			startMenu.setCommandListener(this);
			startMenuBack = new Command(s2, 4, 1);
			startMenu.addCommand(startMenuBack);
			startMenu.addCommand(GX10Command_OK);
			optionsMenu = new List(s4, 2);
			optionsMenu.append("音效", null);
			//optionsMenu.append("震动", null);
			optionsMenu.setSelectedFlags(optionFlags);
			optionsMenu.setCommandListener(this);
			optionsMenu.addCommand(new Command("确定", 4, 1));
			instructionsMenu = new Form(s5);
			instructionsMenu.addCommand(new Command(s2, 4, 1));
			instructionsMenu.setCommandListener(this);
			aboutMenu = new Form(s6);
			aboutMenu.addCommand(new Command(s2, 4, 1));
			aboutMenu.setCommandListener(this);
			surrenderMenu[0] = new Form(s1);
			surrenderMenu[0].append("红队获得胜利!");
			surrenderMenu[0].setCommandListener(this);
			surrenderMenu[0].addCommand(new Command(s2, 4, 1));
			surrenderMenu[1] = new Form(s1);
			surrenderMenu[1].append("蓝队获得胜利!");
			surrenderMenu[1].setCommandListener(this);
			surrenderMenu[1].addCommand(new Command(s2, 4, 1));
			/*StringItem si1 = new StringItem("", "『应用介绍』");
			StringItem si2 = new StringItem("", "『操作说明』");
			instructionsMenu.append(si1);*/
			instructionsMenu
					.append("『应用介绍』\n  天才的将军!百战天虫需要您的指挥,才能在土地居住权的神圣战斗中胜出,还等什么,发挥你的军事才能,立即加入战斗吧!\n  本游戏提供人机对战和人人对战两种模式,战斗中有多种不同的武器可供使用,请注意有的武器有数量限制。\n  在游戏过程中,您需在规定时间内发射武器,部分武器在使用过程中会受到风力的影响,时间计数器上方的闪动条表示风向,红色向右,蓝色向左,闪动条长短表示风力大小。\n  红队和蓝队分别以红、蓝箭头区分,电脑默认为红队,每队各有两名天虫,以P1和P2区分当前行动的天虫,电脑选手不受你的控制。\n\n『操作说明』\n  游戏中方向键左或数字键4控制天虫向左移动,方向键右或数字键6控制向右移动,当红/蓝箭头出现时操作方向键上下或数字键2、8出现武器,继续操作可控制武器发射角度,右软键变更武器,左软键暂停返回主菜单。\n  按住炫键或数字5不放时发射炮弹的力度在不断增加,当力度到达最大或松开时立即发射。\n\n『武器描述』\n普通导弹:没有数量限制,发射后碰撞物体爆炸,威力一般。\n重型导弹:共两发,发射后碰撞物体爆炸,威力巨大。\n红色手雷:共四发,发射三秒后爆炸,威力小,但能穿透物体。\n黑色手雷:共两发,发射三秒后爆炸,威力中,能穿透物体。\n定时炸弹:每只天虫一发,发射为在原地安装炸弹,六秒后爆炸,威力巨大。");
//			instructionsMenu.append(si2);
//			instructionsMenu.append("游戏中方向键左或数字键4控制天虫向左移动,方向键右或数字键6控制向右移动,方向键上下或数字键2、8控制发射角度,右软键变更武器,左软键返回主菜单。\n按住炫键或数字5不放时发射炮弹的力度在不断增加,松开立即以当前力度发射,当力度到达最大立即发射。");
			aboutMenu
					.append("应用名称:百战天虫\n容量:93K\n版本号:1.0.1\n开发商:THQ\n提供商:当途摩宝\n客服电话:010-84832907\nEMAIL:khfw@down2mobile.com\n");
		} catch (Exception exception) {
			exception.printStackTrace();
		}
	}

	public Menu() {
		super("百战天虫", 3);
		surrenderMenu = new Form[2];
		stop = false;
		languageSelect = true;
		midlet = Worms.instance;
		//        append("English", null);
		//        append("Fran\347ais", null);
		//        append("Espa\361ol", null);
		//        append("Deutsch", null);
		/*try {
			startImg = Image.createImage("/icon.png");
		}catch (Exception e) {			
		}*/
		append("动画演示", Splash.playImg);
		append("开始新游戏", Splash.startImg);
		append("设置", Splash.setImg);
		append("帮助", Splash.helpImg);
		append("关于", Splash.aboutImg);
		append("退出", Splash.exitImg);
		addCommand(GX10Command_OK);
		setCommandListener(this);

		init();
	}

}

⌨️ 快捷键说明

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