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

📄 game.java

📁 应用j2me技术开发的手机游戏
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
				dlen++;
			}
			if (dlen >= 1)
				this.diagFinished = true;
			break;

		case 5:
			if (pagedown) {
				pagedown = false;
				g.drawImage(loadImage("/back.png"), 0, 0, 20);
				switch (dlen) {
				case 0:
					Const
							.drawString(
									g,
									"很好,希洛,不愧是我们看重的人,这是你的奖赏,另外学院最近开发了一些新的魔法药剂以及恢复药膏,你需要补助时可以去西庭,你一定会感到意外的",
									0, 0, 2 * SCREENHEIGHT / 3, SCREENWIDTH,
									SCREENHEIGHT / 3, true, true,
									Font.SIZE_LARGE);
					g.drawImage(this.imSchoolMaster, 0, 2 * SCREENHEIGHT / 3
							- imSchoolMaster.getHeight(), 20);
					break;
				case 1:
					Const.drawString(g, "非常感谢,院长阁下,我会去看看的", 0, 0,
							2 * SCREENHEIGHT / 3, SCREENWIDTH,
							SCREENHEIGHT / 3, true, true, Font.SIZE_LARGE);
					g.drawImage(this.lin.imgplayer, 0, 2 * SCREENHEIGHT / 3
							- imPrince.getHeight(), 20);

					break;
				case 2:
					Const
							.drawString(
									g,
									"另外通过你的回报,我们认为谢尔德王子是个狂妄自大,毫无实力的家伙,因此我们决定支持另外一个王位继承人,",
									0, 0, 2 * SCREENHEIGHT / 3, SCREENWIDTH,
									SCREENHEIGHT / 3, true, true,
									Font.SIZE_LARGE);
					g.drawImage(this.imSchoolMaster, 0, 2 * SCREENHEIGHT / 3
							- imSchoolMaster.getHeight(), 20);
					break;
				case 3:
					Const
							.drawString(
									g,
									"菲娜公主殿下,不久之后你就会看到她,但在此之前准备下次的大陆竞赛吧,我已经通知他们开放了百年一次的试炼之原,到南部就可以进去了",
									0, 0, 2 * SCREENHEIGHT / 3, SCREENWIDTH,
									SCREENHEIGHT / 3, true, true,
									Font.SIZE_LARGE);
					g.drawImage(this.imSchoolMaster, 0, 2 * SCREENHEIGHT / 3
							- imSchoolMaster.getHeight(), 20);
					break;
				case 4:
					Const.drawString(g, "我非常期待,阁下", 0, 0, 2 * SCREENHEIGHT / 3,
							SCREENWIDTH, SCREENHEIGHT / 3, true, true,
							Font.SIZE_LARGE);
					g.drawImage(this.lin.imgplayer, 0, 2 * SCREENHEIGHT / 3
							- imPrince.getHeight(), 20);
					break;
				}

				dlen++;
			}

			if (dlen >= 5)
				this.diagFinished = true;
			break;

		case 6:
			if (pagedown) {
				pagedown = false;
				g.drawImage(loadImage("/back.png"), 0, 0, 20);
				switch (dlen) {
				case 0:
					Const.drawString(g,
							"枫,怎么是你?我不是说过毕业后就回去吗,现在感到大陆的局势越来越混乱了,这种地方还是太惹人注意",
							0, 0, 2 * SCREENHEIGHT / 3, SCREENWIDTH,
							SCREENHEIGHT / 3, true, true, Font.SIZE_LARGE);
					g.drawImage(this.lin.imgplayer, 0, 2 * SCREENHEIGHT / 3
							- lin.imgplayer.getHeight(), 20);
					break;
				case 1:
					Const
							.drawString(
									g,
									"抱歉,希洛,我一直在担心你,自从你进来这里已经一年多了,我想和你在一起,正好这里正在征找后勤人员,所以就报名了",
									0, 0, 2 * SCREENHEIGHT / 3, SCREENWIDTH,
									SCREENHEIGHT / 3, true, true,
									Font.SIZE_LARGE);

					g.drawImage(loadImage("/character/fenghead.png"), 0,
							2 * SCREENHEIGHT / 3 - 50, 20);
					break;
				case 2:
					Const
							.drawString(
									g,
									"这个……,真拿你没办法,好吧,虽然我们是青梅竹马,但也不要违背学院的制度,让我看看学院提供了什么东西?",
									0, 0, 2 * SCREENHEIGHT / 3, SCREENWIDTH,
									SCREENHEIGHT / 3, true, true,
									Font.SIZE_LARGE);
					g.drawImage(this.lin.imgplayer, 0, 2 * SCREENHEIGHT / 3
							- lin.imgplayer.getHeight(), 20);
					break;
				case 3:
					Const.drawString(g,
							"嗯!都是些不错的东西,虽然你那么说,但刚刚后勤部长说过,学院首席的优待还是有的,所有物品价格减半",
							0, 0, 2 * SCREENHEIGHT / 3, SCREENWIDTH,
							SCREENHEIGHT / 3, true, true, Font.SIZE_LARGE);
					g.drawImage(loadImage("/character/fenghead.png"), 0,
							2 * SCREENHEIGHT / 3 - 50, 20);
					break;
				}

				dlen++;
			}

			if (dlen >= 4)
				this.diagFinished = true;
			break;
		}

	}

	/*********************************************************************************
	 * 对话界面的按键相应
	 *********************************************************************************/
	void dialogInput(int key) {

		switch (key) {
		case DOWN_PRESSED:
			if (selected) {
				for (int i = 0; i < lbselect.length; i++)
					if (lbselect[i] != null && lbselect[i].getMaxItem() != 0) {
						lbselect[i].moveNext();
					}
				break;
			}

		case UP_PRESSED:
			if (selected) {
				for (int i = 0; i < lbselect.length; i++) {
					if (lbselect[i] != null && lbselect[i].getMaxItem() != 0) {
						lbselect[i].movePrev();
					}
				}
				break;
			}
		case LEFT_PRESSED:
			break;
		case RIGHT_PRESSED:
			break;
		case FIRE_PRESSED:
			if (!selected) {

				pagedown = true;
				switch (k) {
				case 0:
					k = 1;
					break;
				case 1:
					k = 2;
					break;
				case 2:
					k = 3;
					break;
				case 3:
					k = 4;
					break;
				case 7:
					k = 8;
					break;
				}
				break;
			}
			if (selected)// 处于选择对话的时候如何处理;
				for (int i = 0; i < lbselect.length; i++) {

					if (lbselect[i] != null && lbselect[i].getMaxItem() != 0) {

						switch (lbselect[i].getIndex()) {
						case 0:
							if (lbselect[i].getItemString().equalsIgnoreCase(
									"一:永生")) {
								selected = false;
								pagedown = true;
								lbselect[0] = null;
								k = 5;
								return;
							}
							if (lbselect[i].getItemString().equalsIgnoreCase(
									"一:失去眼睛……")) {
								lin.trait = 1;
								selected = false;
								pagedown = true;
								lbselect[1] = null;
								k = 7;
								return;
							}
							break;
						case 1:
							if (lbselect[i].getItemString().equalsIgnoreCase(
									"二:我太累了,让我解脱吧")) {
								selected = false;
								pagedown = true;
								lbselect[i] = null;
								k = 6;
								return;
							}
							if (lbselect[i].getItemString().equalsIgnoreCase(
									"二:直觉告诉我这个……")) {
								lin.trait = 2;
								selected = false;
								pagedown = true;
								lbselect[i] = null;
								k = 7;
								return;
							}
							break;
						case 2:
							if (lbselect[i].getItemString().equalsIgnoreCase(
									"三:选这个的话就有些 ……")) {
								lin.trait = 3;
								selected = false;
								pagedown = true;
								lbselect[i] = null;
								k = 7;
								return;
							}
						}
					}
				}
		}

	}

	/*****************************************************************************
	 * 对话并且兼具选择; k代表开头场景的对话字符串
	 * 
	 * 对话选择基本上弄完了,就是控制变量以及显示问题
	 * 
	 *****************************************************************************/
	void dialogSelect() {
		g.setColor(0);
		g.fillRect(0, 0, SCREENWIDTH, SCREENHEIGHT - SCREENHEIGHT / 3);
		g.setClip(0, 0, SCREENWIDTH, SCREENHEIGHT);

		switch (k) {// 根据对话进展显示不同的人物头像;
		case 0:
		case 2:
		case 4:
			g.drawImage(lin.imgplayer, 0, 2 * SCREENHEIGHT / 3
					- lin.imgplayer.getHeight(), 20);
			break;
		}

		if (pagedown && !selected && k < 9) {

			if (k > 7) {
				GAMESTATE = Const.GAME_RUNNING;
				k = 9;
				return;
			}
			if (k == 6) {
				try {
					g.drawImage(Image.createImage("/Gameover.png"), 0, 0, 20);
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			String sub = Const.diagHeroStart[k];
			Const.drawString(g, sub, 0, 0, 2 * SCREENHEIGHT / 3, SCREENWIDTH,
					SCREENHEIGHT / 3, true, pagedown, Font.SIZE_LARGE);

			pagedown = false;

			try {
				if (k == 6) {
					flushGraphics();
					Thread.sleep(4000);
					exit();
					mid.showManu();

				}
				Thread.sleep(400);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		if (k == 4 && lbselect[0] != null) {
			selected = true;
			lbselect[0].draw(g, SCREENWIDTH / 10, SCREENHEIGHT / 3,
					4 * SCREENWIDTH / 5, 30 * lbselect[0].getMaxItem());
			pagedown = false;

			try {
				Thread.sleep(100);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}

		}

		if (lbselect[1] != null && k == 5) {
			selected = true;
			lbselect[1].draw(g, SCREENWIDTH / 10, SCREENHEIGHT / 3,
					9 * SCREENWIDTH / 10, 30 * lbselect[1].getMaxItem());
			pagedown = false;
			try {
				Thread.sleep(100);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}

	}

	/**
	 * @param key
	 *            传入的游戏按键响应 进行系统界面的按键响应事件,包括存储进度,读取进度,打开人物界面等等;
	 * 
	 */
	void systemInput(int key) {
		switch (key) {
		case UP_PRESSED:
			lbSystem.movePrev();
			break;
		case DOWN_PRESSED:
			lbSystem.moveNext();
			break;
		case FIRE_PRESSED:
			ts1 = System.currentTimeMillis();
			switch (lbSystem.getIndex()) {
			case 0:// 选择保存进度的时候,进入进度保存选择框;
				GAMESTATE = Const.GAME_SAVE;
				break;
			case 1:
				GAMESTATE = Const.GAME_LOAD;
				break;
			case 2:
				GAMESTATE = Const.GAME_SYSTEM_TOOLS;
				break;
			case 3:
				GAMESTATE = Const.GAME_CHARCTERSTATUE;

				break;

			case 4:
				GAMESTATE = Const.GAME_TASK;
				break;

			}
			break;
		case GAME_A_PRESSED:
			ts2 = System.currentTimeMillis();
			if (System.currentTimeMillis() - ts1 > 300)
				GAMESTATE = Const.GAME_RUNNING;
			break;
		}
	}

	/****************************************
	 * 绘制系统选择框;
	 ****************************************/
	void drawSystem() {

		g.drawImage(loadImage("/back.png"), 0, 0, 20);
		lbSystem.draw(g, SCREENWIDTH / 5, SCREENHEIGHT / 6, SCREENWIDTH / 2,
				40 * lbSystem.getMaxItem());

	}

	/**
	 * @param key
	 *            处理存储界面的按键响应;
	 * 
	 */
	void saveInput(int key) {

		switch (key) {
		case UP_PRESSED:
			SaveAndLoad.lbSave.movePrev();
			break;

		case DOWN_PRESSED:

			SaveAndLoad.lbSave.moveNext();
			break;

		case FIRE_PRESSED:
			if (System.currentTimeMillis() - ts1 > 300)
				switch (SaveAndLoad.lbSave.getIndex()) {
				case 0:

					new SaveAndLoad(mid).save(1, this);
					break;
				case 1:

					new SaveAndLoad(mid).save(2, this);
					break;
				case 2:

					new SaveAndLoad(mid).save(3, this);
					break;
				}
			break;

		case GAME_A_PRESSED:
			GAMESTATE = Const.GAME_SYSTEM;
			break;

		}
	}

	/**
	 * 绘制存储菜单
	 */
	void drawSave() {

		SaveAndLoad.lbSave.draw(g, SCREENWIDTH / 6, SCREENHEIGHT / 6,
				SCREENWIDTH / 2 + 30, 40 * lbSystem.getMaxItem());
	}

	/**
	 * @param key
	 *            处理读取进度界面的按键响应事件;
	 * 
	 */
	void loadInput(int key) {

		switch (key) {
		case UP_PRESSED:

			SaveAndLoad.lbLoad.movePrev();
			break;

		case DOWN_PRESSED:

			SaveAndLoad.lbLoad.moveNext();
			break;
		case FIRE_PRESSED:

			switch (SaveAndLoad.lbLoad.getIndex()) {
			case 0:
				brun = false;

				new SaveAndLoad(mid).load(1, new Game(mid));
				break;
			case 1:

				brun = false;

				new SaveAndLoad(mid).load(2, new Game(mid));
				break;
			case 2:

				brun = false;

				new SaveAndLoad(mid).load(3, new Game(mid));
				break;

			}
			break;

		case GAME_A_PRESSED:
			GAMESTATE = Const.GAME_SYSTEM;
			break;
		}
	}

	/**
	 * 绘制读取菜单;
	 */
	void drawLoad() {
		SaveAndLoad.lbLoad.draw(g, SCREENWIDTH / 6, SCREENHEIGHT / 6,
				2 * SCREENWIDTH / 3, 40 * lbSystem.getMaxItem());
	}

	/**
	 * 命令响应系統菜單包括返回菜單以及音樂控制菜單;
	 * 
	 * @param key
	 */
	void SystemoutInput(int key) {
		switch (key) {
		case UP_PRESSED:
			lbSystemout.movePrev();
			break;
		case DOWN_PRESSED:
			lbSystemout.moveNext();
			break;
		case FIRE_PRESSED:
			switch (lbSystemout.getIndex()) {
			case 0:
				music = true;

				break;
			case 1:
				music = false;

				break;
			case 2:
				exit();
				mid.showManu();
			}
			break;
		case GAME_A_PRESSED:
			GAMESTATE = Const.GAME_SYSTEM;
			break;

		}
	}

	/**
	 * 绘制系统工具菜单,包括音乐开关,以及返回初始画面;
	 */
	void drawSystemout() {
		lbSystemout.draw(g, SCREENWIDTH / 5, SCREENHEIGHT / 6, SCREENWIDTH / 2,
				40 * lbSystem.getMaxItem());

	}

	/**
	 * @param key
	 *            进行主角界面的判断,需要重新实行; ;

⌨️ 快捷键说明

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