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

📄 gameworld.java

📁 实现了 移动 碰撞检测
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
			loadScale = 11;
			serviceRepaints();
			this.potImage = loadImage("/pot.png");

			smallEnemyImage = loadImage("/soldier_small3.png");// 随机敌人
			bigEnemyImage = loadImage("/soldier_big3.png");// 丢炸弹的敌人
			backgroundImage = loadImage("/bg_3.png");
			loadScale = 12;
			serviceRepaints();
			break;

		case 8:
			horntest_map = this.loadMap("8");
			this.busImage = loadImage("/bus.png");
			towerImage = loadImage("/pot.png");
			loadScale = 11;
			serviceRepaints();

			this.potImage = loadImage("/pot.png");
			this.houseImage2 = loadImage("/house_2.png");

			smallEnemyImage = loadImage("/soldier_small3.png");// 随机敌人
			bigEnemyImage = loadImage("/soldier_big3.png");// 丢炸弹的敌人
			backgroundImage = loadImage("/bg_3.png");
			loadScale = 12;
			serviceRepaints();
			break;

		case 9:
			horntest_map = this.loadMap("9");
			this.busImage = loadImage("/bus.png");
			towerImage = loadImage("/pot.png");
			loadScale = 11;
			serviceRepaints();
			this.planeImage = loadImage("/plane.png");
			this.houseImage2 = loadImage("/house_2.png");
			this.potImage = loadImage("/pot.png");

			smallEnemyImage = loadImage("/soldier_small3.png"); // 随机敌人
			bigEnemyImage = loadImage("/soldier_big3.png"); // 丢炸弹的敌人
			backgroundImage = loadImage("/bg_3.png");
			loadScale = 12;
			serviceRepaints();
			break;
		}
		if (level < 10)
		{
			bgWidth = backgroundImage.getWidth();
			end = bgWidth;
		}
		randomEnemyType = 5; // 设置随机出现敌人的类型
		column = -offsetX / 16; // 地图砖块的起始下标
		endColumn = column + screenWidth / 16; // 地图砖块的结束下标
		tempEnd = endColumn;

		allEnemy = new Enemy[totalSprite]; // 敌人精灵数组
		for (int i = 0; i < totalSprite; i++)
		{
			allEnemy[i] = new Enemy(45, 45, 1, this); // 默认为步兵
		}

		player = new Player(1, 1, this); // 设置游戏玩家

		loadScale = 13;
		serviceRepaints();

		// 初始化屏幕上的固定敌人和前景
		for (byte row = 0; row < horntest_map.length; row++)//horntest_map.length = 13;
		{
			for (byte col = (byte) column; col < endColumn; col++)//endColumn = 11;
			{
				if (horntest_map[row][col] != 0)
				{
					// 检测是否有空闲的对象
					for (int j = 0; j < allEnemy.length; j++)//allEnemy.length = 20;
					{
						if (!allEnemy[j].visible)
						{ // 空闲对象即不可见的对象
							// 初始化对象为地图数据上类型 13*100
							allEnemy[j].init(col * 16, horntest_map[row][col]);
							if (allEnemy[j].spriteType == 1
									|| allEnemy[j].spriteType == 2
									|| allEnemy[j].spriteType == 3
									|| allEnemy[j].spriteType == 4
									|| allEnemy[j].spriteType == 5
									|| allEnemy[j].spriteType == 6
									|| allEnemy[j].spriteType == 13
									|| allEnemy[j].spriteType == 14
									|| allEnemy[j].spriteType == 28)
							{

								enemyCount++;
							}

							// 用冒泡法来根据对象的Y坐标排序
							for (int i = 0; i < allEnemy.length; i++)
							{
								for (int k = i + 1; k < allEnemy.length; k++)
								{
									if (allEnemy[k].visible
											&& allEnemy[k].spriteY
													+ allEnemy[k].height < allEnemy[i].spriteY
													+ allEnemy[i].height)
									{

										Enemy tempE = allEnemy[i];
										allEnemy[i] = allEnemy[k];
										allEnemy[k] = tempE;
									}
								}
							}
							break;
						}
					}
				}
			}
		}
		loadScale = 14;
		serviceRepaints();

		System.gc();
		isLoading = false;
		gameStart = true;
//		System.out.println(endColumn);
	}

	//添加小子弹图标
	public static void addBulletIcon()
	{
		for (int i = 0; i < 30 - Player.bulletCount; i++)
			bulletVector.addElement(itemImage);
	}

	//取得随机数
	public int randomNum(int seed)
	{
		return (random.nextInt() & 0x7fffffff) % seed;
	}

	/**
	 * 设置游戏状态
	 * 
	 * @param b
	 *            游戏状态常量
	 */
	public void setGameState(byte b)
	{
		gameState = b;
	}

	// 游戏按键的重置
	public void keyReset()
	{
		upPress = false;
		downPress = false;
		leftPress = false;
		rightPress = false;
		upRightPress = false;
		upLeftPress = false;
		downRightPress = false;
		downLeftPress = false;
	}

	// 游戏按键
	public void keyPressed(int keyCode)
	{
		/** ***************************游戏刚刚开始******************************* */
		if (isNew)
		{
			if (logoCount == 2 && nameStart <= 120)
			{// 显示完LOGO后进入游戏菜单
				logoImage = null;// 释放LOGO 资源
				nameImage = null;
				anykeyImage = null;
				isNew = false;
				startMenu = true;
				System.gc();
			}
			if (keyCode == K_BACK)// 右软键盘退出
			{
				Project2.exitApp();
			}
			return;
		}
		/** ***************************菜单选择************************************ */
		if (startMenu)
		{
			if (!keyMenu)
			{
				return;
			}
			if (getGameAction(keyCode) == Canvas.LEFT
					|| keyCode == Canvas.KEY_NUM4)
			{
				if (menuItem == 1)
				{
					menuItem = 5;
				} else
				{
					menuItem--;
				}
				if (sound)
				{
					try
					{
						soundSFX[0].stop();
						soundSFX[0].start();
					} catch (MediaException e)
					{
						e.printStackTrace();
					}
					keyMenu = false;
				}
				return;
			}
			if (getGameAction(keyCode) == Canvas.RIGHT
					|| keyCode == Canvas.KEY_NUM6)
			{
				if (menuItem == 5)
				{
					menuItem = 1;
				} else
				{
					menuItem++;
				}
				if (sound)
				{
					try
					{
						soundSFX[0].stop();
						soundSFX[0].start();
					} catch (MediaException e)
					{
						e.printStackTrace();
					}
					keyMenu = false;
				}
				return;
			}
			if (getGameAction(keyCode) == Canvas.FIRE || keyCode == K_OK)
			{
				if (sound)
				{
					try
					{
						soundSFX[0].stop();
						soundSFX[0].start();
					} catch (MediaException e)
					{
						e.printStackTrace();
					}
					keyMenu = false;
				}
				switch (menuItem)
				{
				case 1: // 开始游戏
					startMenu = false;
					isStartCaption = true;
					break;
				case 2: // 继续游戏
					startMenu = false;
					sound = loadSetUP();
					level = loadLevel();
					initGame(20, level);
					gameStart = true;
					/** ****************************************************************************************** */
					break;
				case 3: // 音效开关
					startMenu = false;
					setGame = true;
					break;
				case 4: // 帮助
					startMenu = false;
					help = true;
					break;
				case 5: // 退出
					Project2.exitApp();
					break;
				}
			}
			if (keyCode == K_BACK)// 右软键盘退出
			{
				Project2.exitApp();
			}
			return;
		}

		/** **************************游戏设置************************************ */

		if (setGame)
		{
			if (!keyMenu)
			{
				return;
			}

			if (getGameAction(keyCode) == Canvas.FIRE || keyCode == K_OK)
			{
				sound = !sound;
				if (sound)
				{
					try
					{
						soundSFX[0].stop();
						soundSFX[0].start();
					} catch (MediaException e)
					{
						e.printStackTrace();
					}
					keyMenu = false;
				}
			}

			if (keyCode == K_BACK)
			{// 返回菜单
				if (sound)
				{
					try
					{
						soundSFX[0].stop();
						soundSFX[0].start();
					} catch (MediaException e)
					{
						e.printStackTrace();
					}
					keyMenu = false;
				}
				setGame = false;
				startMenu = true;
				saveSetUP();
			}
			return;
		}

		/** ****************************帮助************************************** */
		if (help)
		{
			if (!keyMenu)
			{
				return;
			}
			if (getGameAction(keyCode) == Canvas.UP
					|| keyCode == Canvas.KEY_NUM2)
			{
				if (helpItem > 0)
				{
					helpItem--;
				}
				if (sound)
				{
					try
					{
						soundSFX[0].stop();
						soundSFX[0].start();
					} catch (MediaException e)
					{
						e.printStackTrace();
					}
					keyMenu = false;
				}
				return;
			}

			if (getGameAction(keyCode) == Canvas.DOWN
					|| keyCode == Canvas.KEY_NUM8)
			{
				if (helpItem < 2)
				{
					helpItem++;
				}
				if (sound)
				{
					try
					{
						soundSFX[0].stop();
						soundSFX[0].start();
					} catch (MediaException e)
					{
						e.printStackTrace();
					}
					keyMenu = false;
				}
				return;
			}

			if (keyCode == K_OK || keyCode == K_BACK)
			{
				help = false;
				startMenu = true;
				helpItem = 0;
				if (sound)
				{
					try
					{
						soundSFX[0].stop();
						soundSFX[0].start();
					} catch (MediaException e)
					{
						e.printStackTrace();
					}
					keyMenu = false;
				}
			}
			return;
		}

		/** **************************游戏中的菜单********************************* */
		if (gameMenu)
		{
			if (!keyMenu)
			{
				return;
			}

			if (getGameAction(keyCode) == Canvas.UP
					|| keyCode == Canvas.KEY_NUM2)
			{
				if (gameMenuItem == 1)
				{
					gameMenuItem = 2;
				} else
				{
					gameMenuItem = 1;
				}
				if (sound)
				{
					try
					{
						soundSFX[0].stop();
						soundSFX[0].start();
					} catch (MediaException e)
					{
						e.printStackTrace();
					}
					keyMenu = false;
				}
				return;
			}

			if (getGameAction(keyCode) == Canvas.DOWN
					|| keyCode == Canvas.KEY_NUM8)
			{
				if (gameMenuItem == 2)
				{
					gameMenuItem = 1;
				} else
				{
					gameMenuItem = 2;
				}
				if (sound)
				{
					try
					{
						soundSFX[0].stop();
						soundSFX[0].start();
					} catch (MediaException e)
					{
						e.printStackTrace();
					}
					keyMenu = false;
				}
				return;
			}
			if (getGameAction(keyCode) == Canvas.FIRE
					|| keyCode == Canvas.KEY_NUM5 || keyCode == K_OK)
			{
				switch (gameMenuItem)
				{
				case 1: // 继续游戏
					gameMenu = false;
					break;
				case 2: // 退出
					this.autoSave();
					reset();
					gameMenu = false;
				    System.gc();
					break;
				}
				if (sound)
				{
					try
					{
						soundSFX[0].stop();
						soundSFX[0].start();
					} catch (MediaException e)

⌨️ 快捷键说明

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