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

📄 anemy.java

📁 使用java 开发的手机小游戏
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
				&& map[oldRow + 1][oldColumn + 1] != Map.ISLAND
				&& map[oldRow + 1][oldColumn + 1] != Map.TREE
				&& map[oldRow + 1][oldColumn + 1] != Map.BONE
				&& map[oldRow + 1][oldColumn + 1] != Map.SWIRL
				&& !TestBomb(mainRow, mainColumn, oldRow + 1, oldColumn + 1,
						mainDir)) {
			shDirection = 3;
			row = oldRow + 1;
			column = oldColumn + 1;
			shCurrPic = imageShip[3];
			direction = true;
		} else
			direction = false;
		;
	}

	protected void AdvancedLeftUp() {
		if (oldRow - 1 >= 0
				&& oldRow - 1 < 11
				&& oldColumn - 1 >= 0
				&& oldColumn - 1 < 11
				&& map[oldRow - 1][oldColumn - 1] != Map.ISLAND
				&& map[oldRow - 1][oldColumn - 1] != Map.TREE
				&& map[oldRow - 1][oldColumn - 1] != Map.BONE
				&& map[oldRow - 1][oldColumn - 1] != Map.SWIRL
				&& !TestBomb(mainRow, mainColumn, oldRow - 1, oldColumn - 1,
						mainDir)) {
			shDirection = 7;
			row = oldRow - 1;
			column = oldColumn - 1;
			shCurrPic = imageShip[7];
			direction = true;
		} else
			direction = false;
	}

	protected void AdvancedLeftDown() {

		if (oldRow + 1 >= 0
				&& oldRow + 1 < 11
				&& oldColumn - 1 >= 0
				&& oldColumn - 1 < 11
				&& map[oldRow + 1][oldColumn - 1] != Map.ISLAND
				&& map[oldRow + 1][oldColumn - 1] != Map.TREE
				&& map[oldRow + 1][oldColumn - 1] != Map.BONE
				&& map[oldRow + 1][oldColumn - 1] != Map.SWIRL
				&& !TestBomb(mainRow, mainColumn, oldRow + 1, oldColumn - 1,
						mainDir)) {
			shDirection = 1;
			row = oldRow + 1;
			column = oldColumn - 1;
			shCurrPic = imageShip[1];
			direction = true;
		} else
			direction = false;
	}

	protected void AdvancedLeft() {

		if (oldRow >= 0
				&& oldRow < 11
				&& oldColumn - 1 >= 0
				&& oldColumn - 1 < 11
				&& map[oldRow][oldColumn - 1] != Map.ISLAND
				&& map[oldRow][oldColumn - 1] != Map.TREE
				&& map[oldRow][oldColumn - 1] != Map.BONE
				&& map[oldRow][oldColumn - 1] != Map.SWIRL
				&& !TestBomb(mainRow, mainColumn, oldRow, oldColumn - 1,
						mainDir)) {
			shDirection = 4;
			row = oldRow;
			column = oldColumn - 1;
			shCurrPic = imageShip[4];
			direction = true;
		} else
			direction = false;
	}

	protected void AdvancedUp() {
		if (oldRow - 1 >= 0
				&& oldRow - 1 < 11
				&& oldColumn >= 0
				&& oldColumn < 11
				&& map[oldRow - 1][oldColumn] != Map.ISLAND
				&& map[oldRow - 1][oldColumn] != Map.TREE
				&& map[oldRow - 1][oldColumn] != Map.BONE
				&& map[oldRow - 1][oldColumn] != Map.SWIRL
				&& !TestBomb(mainRow, mainColumn, oldRow - 1, oldColumn,
						mainDir)) {
			shDirection = 8;
			row = oldRow - 1;
			column = oldColumn;
			shCurrPic = imageShip[8];
			direction = true;
		} else
			direction = false;
	}

	protected void AdvancedDown() {

		if (oldRow + 1 >= 0
				&& oldRow + 1 < 11
				&& oldColumn >= 0
				&& oldColumn < 11
				&& map[oldRow + 1][oldColumn] != Map.ISLAND
				&& map[oldRow + 1][oldColumn] != Map.TREE
				&& map[oldRow + 1][oldColumn] != Map.BONE
				&& map[oldRow + 1][oldColumn] != Map.SWIRL
				&& !TestBomb(mainRow, mainColumn, oldRow + 1, oldColumn,
						mainDir)) {
			shDirection = 2;
			row = oldRow + 1;
			column = oldColumn;
			shCurrPic = imageShip[2];
			direction = true;
		} else
			direction = false;
	}

	protected boolean TestBomb(int mainRow, int mainColumn, int enemyRow,
			int enemyColumn, int mainDir) {

		boolean test = false;

		if (mainDir == 5) { //如果主船发炮,位置则没有变化,与最后一次变化过的位置相同
			mainDir = oldMainDir;
		}

		switch (mainDir) {
		case 1: //主船45度角
		case 9:
			if ((mainColumn + 3 == enemyColumn) && (mainRow + 3 == enemyRow)
					|| (mainColumn - 3 == enemyColumn)
					&& (mainRow - 3 == enemyRow)) {
				test = true;
			}
			break;

		case 2: //主船90度角
		case 8:
			if (mainRow == enemyRow) {
				if ((mainColumn + 3 == enemyColumn)
						|| (mainColumn - 3 == enemyColumn)
						|| (mainColumn + 2 == enemyColumn)
						|| (mainColumn - 2 == enemyColumn)
						|| (mainColumn + 1 == enemyColumn)
						|| (mainColumn - 1 == enemyColumn)) {
					test = true;
				}
			}
			break;

		case 3: //主船-45度角
		case 7:
			if ((mainColumn - 3 == enemyColumn) && (mainRow + 3 == enemyRow)
					|| (mainColumn + 3 == enemyColumn)
					&& (mainRow - 3 == enemyRow)) {
				test = true;
			}
			break;
		case 4: //主船0度角
		case 6:
			if (mainColumn == enemyColumn) {
				if ((mainRow + 3 == enemyRow) || (mainRow - 3 == enemyRow)
						|| (mainRow + 2 == enemyRow)
						|| (mainRow - 2 == enemyRow)
						|| (mainRow + 1 == enemyRow)
						|| (mainRow - 1 == enemyRow)) {
					test = true;
				}
			}
			break;
		}
		if (mainDir != 5) {
			oldMainDir = mainDir;
		}
		return test;
	}

	protected void General() {
		try {
			if (oldRow == mainRow) {
				row = oldRow;
				if (oldColumn < mainColumn) {
					shDirection = 6;
					column = oldColumn + 1;
					shCurrPic = imageGenShip[6];
				} else if (oldColumn > mainColumn) {
					shDirection = 4;
					column = oldColumn - 1;
					shCurrPic = imageGenShip[4];
				}
			}
			//如果敌船与玩家在同一列,则行数不变,列数向玩家的位置靠拢
			else if (oldColumn == mainColumn) {
				column = oldColumn;
				if (oldRow < mainRow) {
					row = oldRow + 1;
					shDirection = 2;
					shCurrPic = imageGenShip[2];
				} else if (oldRow > mainRow) {
					row = oldRow - 1;
					shDirection = 8;
					shCurrPic = imageGenShip[8];
				}
			}
			//如果敌船与玩家不在同一行且不在同一列,行、列数向玩家的位置靠拢
			if ((oldRow != mainRow) && (oldColumn != mainColumn)) {
				if ((oldRow < mainRow) && (oldColumn < mainColumn)) {
					row = oldRow + 1;
					column = oldColumn + 1;
					shDirection = 3;
					shCurrPic = imageGenShip[3];
				}
				if ((oldRow < mainRow) && (oldColumn > mainColumn)) {
					row = oldRow + 1;
					column = oldColumn - 1;
					shDirection = 1;
					shCurrPic = imageGenShip[1];
				}
				if ((oldRow > mainRow) && (oldColumn < mainColumn)) {
					row = oldRow - 1;
					column = oldColumn + 1;
					shDirection = 9;
					shCurrPic = imageGenShip[9];
				}
				if ((oldRow > mainRow) && (oldColumn > mainColumn)) {
					row = oldRow - 1;
					column = oldColumn - 1;
					shDirection = 7;
					shCurrPic = imageGenShip[7];
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	protected void Beat() {

		beatDirChange = false;

		beatDir = getRandomInt(1, 9);
		while (beatDir == 5)
			beatDir = getRandomInt(1, 9);

		while (!beatDirChange) {
			switch (beatDir) {
			case 1:
				beatTest(oldRow + 1, oldColumn - 1, 1);
				break;
			case 2:
				beatTest(oldRow + 1, oldColumn, 2);
				break;
			case 3:
				beatTest(oldRow + 1, oldColumn + 1, 3);
				break;
			case 4:
				beatTest(oldRow, oldColumn - 1, 4);
				break;
			case 6:
				beatTest(oldRow, oldColumn + 1, 6);
				break;
			case 7:
				beatTest(oldRow - 1, oldColumn - 1, 7);
				break;
			case 8:
				beatTest(oldRow - 1, oldColumn, 8);
				break;
			case 9:
				beatTest(oldRow - 1, oldColumn + 1, 9);
				break;
			}
		}
	}

	protected void beatTest(int beatRow, int beatColumn, int angel) {

		if (beatRow >= 0 && beatRow < 11 && beatColumn >= 0 && beatColumn < 11
				&& map[beatRow][beatColumn] != Map.ISLAND
				&& map[beatRow][beatColumn] != Map.TREE
				&& map[beatRow][beatColumn] != Map.ENEMY1
				&& map[beatRow][beatColumn] != Map.BONE
				&& map[beatRow][beatColumn] != Map.BOTTLE
				&& map[beatRow][beatColumn] != Map.HELPMAN
				&& map[beatRow][beatColumn] != Map.ENEMY2
				&& map[beatRow][beatColumn] != Map.SWIRL) {

			shDirection = angel;
			shCurrPic = imageBeat[angel];
			row = beatRow;
			column = beatColumn;
			beatDirChange = true;
		} else
			beatDir = getRandomInt(1, 9);
		while (beatDir == 5)
			beatDir = getRandomInt(1, 9);
	}

	public void move() {

		switch (shDirection) {
		case 1://Downleft
			pixColumn -= 4;
			pixRow += 4;
			break;
		case 2://Down
			pixRow += 4;
			break;
		case 3://DownRight
			pixColumn += 4;
			pixRow += 4;
			break;
		case 4://Left
			pixColumn -= 4;
			break;
		case 6://Right
			pixColumn += 4;
			break;

		case 7://UpLeft
			pixColumn -= 4;
			pixRow -= 4;
			break;
		case 8://Up
			pixRow -= 4;
			break;
		case 9://UpRight
			pixColumn += 4;
			pixRow -= 4;
			break;
		}
	}

	protected int getRandomInt(int min, int max) {
		return Math.abs(rd.nextInt()) % (max - min + 1) + min;
	}

}

⌨️ 快捷键说明

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