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

📄 mygamecanvas.java

📁 一个小游戏.可以在手机上用的
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
							case Consts.SN_KEY_LEFT_SOFT_KEY: {
								// doStateChange(SB_STATE_MENU);
								nPorintStrrMenuInGame = 0;
								isMenuInGameWorked = true;
								snKeyCodePressed = 0;
							}
								break;

							case UP: {
								page--;
								if (page < 0) {
									page = 0;
								}

							}
								break;
							case DOWN: {
								page++;
								// 控制翻到相应的页数
								if (page > lastpage) {
									freeStrDialog();
								}

							}
								break;
							}
							snKeyCodePressed = 0;
						} else {
							if (bGameResult != 0) {
								if (nTimerForGameResultShow <= 0) {
									if (FIRE == getKeyPressed(false)) {
										if (bGameResult == 1) {
											if (nMapId >= Consts.SN_ABS_MAX_LEVEL + 1) {
												doStateChange(SB_STATE_MENU);

											}
										}
										isKeyReponseMenu = true;
										snKeyCodePressed = 0;
									}

									return;
								}

							}
							switch (tkey) {
							case Consts.SN_KEY_LEFT_SOFT_KEY: {
								// doStateChange(SB_STATE_MENU);
								nPorintStrrMenuInGame = 0;
								isMenuInGameWorked = true;
								snKeyCodePressed = 0;
							}
								break;
							case Consts.SN_KEY_RIGHT_SOFT_KEY: {
								// doStateChange(SB_STATE_MENU);
								if (!isScriptWorking) {
									// isFoorsMenuWorked = true;
									// snKeyCodePressed = 0;
									// //
									// nPStrMenuFoors = 0;
									// nPStrrFoos = 0;
									//
								}

							}
								break;
							case UP: {
								if (!isScriptWorking) {
									npcLisa.doKey(Canvas.UP);
								}
							}
								break;
							case DOWN: {
								if (!isScriptWorking) {
									npcLisa.doKey(Canvas.DOWN);
								}
							}
								break;
							case LEFT: {
								if (!isScriptWorking) {
									npcLisa.doKey(Canvas.LEFT);
								}
							}
								break;
							case RIGHT: {
								if (!isScriptWorking) {
									npcLisa.doKey(Canvas.RIGHT);
								}
							}
								break;
							case FIRE: {
								if (!isScriptWorking) {
									npcLisa.doKey(Canvas.FIRE);
									snKeyCodePressed = 0;
								}
							}
								break;
							case KEY_STAR: {
								if (!isScriptWorking) {
									// 使用道具
									doUseFoorsById(nStarPointer);

									npcLisa.doKey(0);
									snKeyCodePressed = 0;
								}
							}
								break;
							case KEY_POUND: {
								if (!isScriptWorking) {
									// 使用道具
									doUseFoorsById(nPoundPointer);
									snKeyCodePressed = 0;
									npcLisa.doKey(0);
								}
							}
								break;

							default:
								if (!isScriptWorking) {
									npcLisa.doKey(0);
								}
								break;
							}
						}
					}
				}

			}

				break;
			}

		}
	}

	public void doUseFoorsById(int id) {
		if (id < 0) {
			return;
		}
		// 效用~~~~~~~~~~~~~~~~
		// strrFoos = { "蜂蜜", "水果", "蜂王浆", "甘露", "灵芝草", "人参" };
		switch (id) {
		case 0: {
			if (npcLisa != null) {
				if (npcLisa.nHP < npcLisa.nHPMax) {

					if (num_foos[id] > 0) {
						npcLisa.addHP(10);
						num_foos[id]--;
					}
				}

			}
		}
			break;
		case 1: {
			if (npcLisa != null) {
				if (npcLisa.nHP < npcLisa.nHPMax) {
					if (num_foos[id] > 0) {
						npcLisa.addHP(20);
						num_foos[id]--;
					}
				}

			}
		}
			break;
		case 2: {
			if (npcLisa != null) {
				if (npcLisa.nHP < npcLisa.nHPMax) {
					if (num_foos[id] > 0) {
						npcLisa.addHP(1000);
						num_foos[id]--;
					}
				}

			}
		}
			break;
		case 3: {
			if (npcLisa != null) {
				if (npcLisa.nMP < npcLisa.nMPMax) {
					if (num_foos[id] > 0) {
						npcLisa.addMP(10);
						num_foos[id]--;
					}
				}

			}
		}
			break;
		case 4: {
			if (npcLisa != null) {
				if (npcLisa.nMP < npcLisa.nMPMax) {
					if (num_foos[id] > 0) {
						npcLisa.addMP(20);
						num_foos[id]--;
					}
				}

			}
		}
			break;
		case 5: {
			if (npcLisa != null) {
				if (npcLisa.nMP < npcLisa.nMPMax) {
					if (num_foos[id] > 0) {
						npcLisa.addMP(1000);
						num_foos[id]--;
					}
				}

			}
		}
			break;

		}

	}

	/**
	 * 菜单控制管理器
	 */
	public void doKeyStateMenu() {
		if (isFivePressed == false) {
			if (snKeyCodePressed != 0) {
				isFivePressed = true;
				snKeyCodePressed = 0;
				return;
			}
			return;
		} else {

		}
		if (isStrrMenuButtonClicked) {
			switch (nPointerStrrMenu) {
			case 0: {
				// doStateChange(SB_STATE_GAMEING);
				switch (getKeyPressed(true)) {
				case FIRE:
				case Consts.SN_KEY_LEFT_SOFT_KEY: {
					isStrrMenuButtonClicked = false;
					if (nMapId <= 1) {
						nMapId = 1;
					}
					doStateChange(SB_STATE_GAMEING);

				}
					break;
				case Consts.SN_KEY_RIGHT_SOFT_KEY: {
					isStrrMenuButtonClicked = false;
				}
					break;

				case UP: {
					nMapId -= 1;
					nMapId = (short) ((Consts.SN_ABS_MAX_LEVEL + nMapId) % (Consts.SN_ABS_MAX_LEVEL + 1));
					nMapId += 1;
					if (nMapId >= snLevelOpened + 1) {
						nMapId = (short) (snLevelOpened + 1);
					}
				}
					break;
				case DOWN: {
					nMapId -= 1;
					nMapId = (short) ((Consts.SN_ABS_MAX_LEVEL + nMapId + 2) % (Consts.SN_ABS_MAX_LEVEL + 1));
					nMapId += 1;
					if (nMapId >= snLevelOpened + 1) {
						nMapId = (short) (snLevelOpened + 1);
					}
				}
					break;
				}

			}
				break;
			case 1: { // HELP
				switch (getKeyPressed(true)) {
				case FIRE:
				case Consts.SN_KEY_LEFT_SOFT_KEY: {

				}
					break;
				case Consts.SN_KEY_RIGHT_SOFT_KEY: {
					isStrrMenuButtonClicked = false;
				}
					break;
				case UP: {
					if (nPointerStrrTextShow > 0) {
						nPointerStrrTextShow -= SN_TEXT_ROWS_NUM_MAX;
					}
				}
					break;
				case DOWN: {
					if (nPointerStrrTextShow < strrTextShows.length
							- SN_TEXT_ROWS_NUM_MAX) {
						nPointerStrrTextShow += SN_TEXT_ROWS_NUM_MAX;
					}
				}
					break;
				}
			}
				break;
			case 2: { // ABOUT
				switch (getKeyPressed(true)) {
				case FIRE:
				case Consts.SN_KEY_LEFT_SOFT_KEY: {

				}
					break;
				case Consts.SN_KEY_RIGHT_SOFT_KEY: {
					isStrrMenuButtonClicked = false;
				}
					break;
				case UP: {
					if (nPointerStrrTextShow > 0) {
						nPointerStrrTextShow -= SN_TEXT_ROWS_NUM_MAX;
					}
				}
					break;
				case DOWN: {
					if (nPointerStrrTextShow < strrTextShows.length
							- SN_TEXT_ROWS_NUM_MAX) {
						nPointerStrrTextShow += SN_TEXT_ROWS_NUM_MAX;
					}
				}
					break;
				}
			}
				break;
			case 3: { // EXIT
				Main.isLooping = false;
			}
				break;
			}

		} else {
			switch (getKeyPressed(true)) {
			case FIRE:
			case Consts.SN_KEY_LEFT_SOFT_KEY: {
				switch (nPointerStrrMenu) {
				case 0: {
					// doStateChange(SB_STATE_GAMEING);
					// isStrrMenuButtonClicked = true;
					// doStateChange(SB_STATE_GAMEING);
					// nMapId = 9;
					isStrrMenuButtonClicked = true;
				}
					break;

				case 1: { // HELP
					nPointerStrrTextShow = 0;
					strrTextShows = strrTextForHelp;
					isStrrMenuButtonClicked = true;
				}
					break;
				case 2: { // ABOUT
					nPointerStrrTextShow = 0;
					strrTextShows = strrTextForAbout;
					isStrrMenuButtonClicked = true;
				}
					break;
				case 3: { // EXIT
					Main.isLooping = false;
				}
					break;
				}
			}
				break;
			case Consts.SN_KEY_RIGHT_SOFT_KEY: {
				isStrrMenuButtonClicked = false;
			}
				break;
			case LEFT: {
				if (nPointerStrrMenu > 0) {
					nPointerStrrMenu--;
				}
			}
				break;
			case RIGHT: {
				if (nPointerStrrMenu < strrMenu.length - 1) {
					nPointerStrrMenu++;
				}
			}
				break;
			}
		}
	}

	/**
	 * 游戏绘制控制
	 */
	final void doPaint() {
		doRepaints(0, 0, Consts.SN_SCREEN_WIDTH, Consts.SN_SCREEN_HEIGHT);
	}

	/**
	 * 双缓冲
	 */
	public void paintGamingState(Graphics g) {
		// g.setClip(0, 0, Consts.SN_SCREEN_WIDTH, Consts.SN_SCREEN_HEIGHT);
		int tx = snWindowX;
		int ty = snWindowY;
		int twidth = Consts.SN_SCREEN_WIDTH - (tx << 1);
		int theight = Consts.SN_SCREEN_WIDTH - (ty << 1);
		// g.setClip(tx, ty, twidth, theight);
		if (isStoryModeWorking) {

			//
			paintBackground(g);
			paintTiles(g);
			paintUnits(g);
			//

			//
			paintWeather(g);
			//

			g.setColor(0);
			g.fillRect(-1, Consts.SN_TXT_STORY_WIN_Y,
					Consts.SN_SCREEN_WIDTH + 2, Consts.SN_TXT_STORY_WIN_HEIGHT);
			g.setColor(Consts.COLOR_WHITE);
			g.drawRect(-1, Consts.SN_TXT_STORY_WIN_Y,
					Consts.SN_SCREEN_WIDTH + 2, Consts.SN_TXT_STORY_WIN_HEIGHT);
			g.setClip(0, Consts.SN_TXT_STORY_WIN_Y + 1, Consts.SN_SCREEN_WIDTH,
					Consts.SN_TXT_STORY_WIN_HEIGHT - 2);

			for (int i = 0; i < SN_TEXT_ROWS_NUM_MAX; i++) {
				if (strStory != null) {
					int id = nLine + i;
					if (id >= 0 && id < strStory.length) {
						g.drawString(strStory[id], SN_TEXT_TOP_X, SN_TEXT_TOP_Y
								+ i * SN_CHAR_HEIGHT, Graphics.TOP
								| Graphics.LEFT);
					}
				}

			}
			g.setClip(0, 0, Consts.SN_SCREEN_WIDTH, Consts.SN_SCREEN_HEIGHT);
		} else if (isFoorsMenuWorked) {
			g.setColor(0);
			g.fillRect(0, 0, Consts.SN_SCREEN_WIDTH, Consts.SN_SCREEN_HEIGHT);
			g.setColor(0xffffff);
			g.drawString(strMenuFoors[nPStrMenuFoors], 0, 0, Graphics.TOP
					| Graphics.LEFT);
			switch (nPStrMenuFoors) {
			case 0: {
				g.drawString("级别 :" + npcLisa.nLevel, 5, 20, Graphics.TOP
						| Graphics.LEFT);
				g.drawString("生命 :" + npcLisa.nHP, 5, 40, Graphics.TOP
						| Graphics.LEFT);
				g.drawString("魔法 :" + npcLisa.nMP, 5, 60, Graphics.TOP
						| Graphics.LEFT);
				g.drawString("攻击 :" + npcLisa.nAttackPower, 5, 80, Graphics.TOP
						| Graphics.LEFT);
				g.drawString("防御 :" + npcLisa.nDefendPower, 5, 100,
						Graphics.TOP | Graphics.LEFT);

			}
				break;
			case 1: {
				for (int i = 0; i < strrFoos.length; i++) {
					if (nPStrrFoos == i) {
						g.setColor(0xff0000);
					} else {
						g.setColor(0xffffff);
					}
					g.drawString("" + strrFoos[i] + " : " + num_foos[i], 5,
							(i + 1) * 20, Graphics.TOP | Graphics.LEFT);
					if (nStarPointer == i && nStarPointer != -1) {
						g.drawString("*键", 85, (i + 1) * 20, Graphics.TOP
								| Graphics.LEFT);
					}
					if (nPoundPointer == i && nPoundPointer != -1) {
						g.drawString("#键", 85, (i + 1) * 20, Graphics.TOP
								| Graphics.LEFT);
					}
				}
			}
				break;
			case 2: {
				g.drawString("帮助:)", 5, 20, Graphics.TOP | Graphics.LEFT);
			}
				break;
			default:
				break;
			}
		} else {
			if (isMenuInGameWorked) {
				g.setColor(0);
				g.fillRect(0, 0, Consts.SN_SCREEN_WIDTH,
						Consts.SN_SCREEN_HEIGHT);

				// g.setColor(0xffffff);
				// g.drawRect(-1, Consts.SN_MENU_IN_GAME_Y_POS_START,
				// Consts.SN_SCREEN_WIDTH + 2,
				// Consts.SN_MENU_IN_GAME_RECT_HEIGHT);

				String[] strTemp1d = null;
				if (bGameResult == 0) {
					strTemp1d = this.strrMenuInGame;
				} else if (bGameResult == 1) {
					strTemp1d = this.strrMenuInGameResultWin;
				} else {
					strTemp1d = this.strrMenuInGameResultFailur;
				}
				for (int i = 0; i < strTemp1d.length; i++) {
					if (i == nPorintStrrMenuInGame) {
						// g.setColor(0xaaaaa);
						// g.drawString(strrMenuInGame[i],
						// Consts.SN_SCREEN_WIDTH >> 1,
						// Consts.SN_MENU_STR_IN_GAME_Y_POS[i],
						// Graphics.TOP | Graphics.HCENTER);
						g.setColor(0xffffff);
						g.drawString(strTemp1d[i],
								(Consts.SN_SCREEN_WIDTH >> 1),
								Consts.SN_MENU_STR_IN_GAME_Y_POS[i],
								Graphics.TOP | Graphics.HCENTER);
					} else {
						g.setColor(0x888888);
						g.drawString(strTemp1d[i], Consts.SN_SCREEN_WIDTH >> 1,
								Consts.SN_MENU_STR_IN_GAME_Y_POS[i],
								Graphics.TOP | Graphics.HCENTER);

					}
				}
			} else {
				// paintTiles
				paintBackground(g);
				paintTiles(g);
				paintUnits(g);

⌨️ 快捷键说明

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