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

📄 metalmaxcanvas.java

📁 此为一款基于J2ME的手机游戏
💻 JAVA
📖 第 1 页 / 共 5 页
字号:

		/*显示个黑屏*/
		g.setColor(0, 0, 0);
		g.fillRect(0, 0, getWidth(), getHeight());
		repaint();

		try {

			Thread.sleep(100);
		} catch (InterruptedException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}

		/*提示虚拟机进行垃圾回收*/
		System.gc();

		/*根据地图编号进行地图的初始化*/
		switch (mapID) {

		case START_MAP:

			/*第一个游戏地图先加载游戏所需的资源*/
			load(ZHUJUE_2F_MAP);

			/*设置为自动运行*/
			gameState = GAME_AUTORUN;

			/*播放自动运行时的音效*/
			SoundEffects.getInstance().startAutoRunSound();

			isGameOver = false;
			gameDuration = 0;

			/*地图图层初始化,包括图层添加,英雄,NPC的初始化*/
			mLm = new LayerManager();

			/*在图层上设置英雄,初始化英雄坐标和方向*/
			mLm.append(mHero);
			mHero.setPosition(5 * 16, 9 * 16);
			mHero.setDown();
		
			/*在图层上设置NPC*/
			mLm.append(mNpc[0]);
			mLm.append(mNpc[1]);

			/*前景图和背景图的添加*/
			mLm.append(mBoxLayer);
			mLm.append(mBackLayer);

			break;

		case WORLD_MAP:

			/*移动到相应的地图*/
			gotoMap(WORLD_MAP);

			/*如果是乘车状态,则播放乘车时的音效,否则播放普通音效*/
			if(isDrive){

				SoundEffects.getInstance().startTankfieldSound();
			}else{

				SoundEffects.getInstance().startHerofieldSound();
			}

			isGameOver = false;

			mLm = new LayerManager();

			mLm.append(mHero);

			if (isDrive){

				mLm.append(mTank);
			}

			if (driveMap == WORLD_MAP){

				mLm.append(mTank);
			}

			/*添加地图所可能触发的事件*/
			mLm.append(mEvent[0]);
			mLm.append(mEvent[1]);
			mLm.append(mEvent[2]);
			mLm.append(mEvent[3]);
			mLm.append(mEvent[4]);
			mLm.append(mEvent[5]);
			mLm.append(mEvent[6]);

			/*对NPC进行处理,不需要显示的NPC进行隐藏*/
			mNpc[0].setVisible(false);
			mNpc[1].setVisible(false);
			mNpc[2].setVisible(false);
			mNpc[3].setVisible(false);
			mNpc[4].setVisible(false);

			mLm.append(mBoxLayer);
			mLm.append(mBackLayer);

			break;

		case LADUO_MAP:

			gotoMap(LADUO_MAP);

			SoundEffects.getInstance().startTownSound();

			isGameOver = false;

			mLm = new LayerManager();

			mLm.append(mHero);

			if (isDrive) {

				mLm.append(mTank);
			}
			if (driveMap == LADUO_MAP) {

				mLm.append(mTank);
			}
			mLm.append(mNpc[0]);
			mLm.append(mNpc[1]);
			mLm.append(mNpc[2]);
			mLm.append(mNpc[3]);
			mLm.append(mNpc[4]);
			mLm.append(mBoxLayer);
			mLm.append(mBackLayer);

			break;

		case ZHUJUE_1F_MAP:

			gotoMap(ZHUJUE_1F_MAP);

			SoundEffects.getInstance().startTownSound();

			isGameOver = false;

			mLm = new LayerManager();

			mLm.append(mHero);

			if (isDrive) {

				mLm.append(mTank);
			}
			if (driveMap == ZHUJUE_1F_MAP) {

				mLm.append(mTank);
			}
			mLm.append(mNpc[0]);
			mLm.append(mNpc[1]);
			mLm.append(mNpc[2]);
			mLm.append(mNpc[3]);
			mLm.append(mNpc[4]);

			mLm.append(mBoxLayer);
			mLm.append(mBackLayer);

			break;

		case ZHUJUE_2F_MAP:

			gotoMap(ZHUJUE_2F_MAP);

			SoundEffects.getInstance().startTownSound();

			isGameOver = false;

			mLm = new LayerManager();

			mLm.append(mHero);

			if (isDrive) {

				mLm.append(mTank);
			}
			if (driveMap == ZHUJUE_1F_MAP) {

				mLm.append(mTank);
			}
			mLm.append(mNpc[0]);
			mNpc[1].setVisible(false);
			mNpc[2].setVisible(false);
			mNpc[3].setVisible(false);
			mNpc[4].setVisible(false);

			mLm.append(mEvent[5]);
			mLm.append(mEvent[6]);
			
			mLm.append(mBoxLayer);
			mLm.append(mBackLayer);

			break;

		case LADUO_SHANGJIN_MAP:

			gotoMap(LADUO_SHANGJIN_MAP);

			SoundEffects.getInstance().startTownSound();

			isGameOver = false;

			mLm = new LayerManager();

			mLm.append(mHero);

			if (isDrive) {

				mLm.append(mTank);
			}
			if (driveMap == LADUO_SHANGJIN_MAP) {

				mLm.append(mTank);
			}
			mLm.append(mNpc[0]);
			mLm.append(mNpc[1]);
			mLm.append(mNpc[2]);
			mLm.append(mNpc[3]);
			mLm.append(mNpc[4]);

			mLm.append(mEvent[6]);
			
			mLm.append(mBoxLayer);
			mLm.append(mBackLayer);

			break;

		case LADUO_HEROITEM_MAP:

			gotoMap(LADUO_HEROITEM_MAP);

			SoundEffects.getInstance().startTownSound();

			isGameOver = false;

			mLm = new LayerManager();

			mLm.append(mHero);

			if (isDrive) {

				mLm.append(mTank);
			}
			if (driveMap == LADUO_HEROITEM_MAP) {

				mLm.append(mTank);
			}
			mLm.append(mNpc[0]);
			mLm.append(mNpc[1]);
			mLm.append(mNpc[2]);
			mLm.append(mNpc[3]);
			mNpc[4].setVisible(false);

			mLm.append(mBoxLayer);
			mLm.append(mBackLayer);

			break;

		case LADUO_BAR_MAP:

			gotoMap(LADUO_BAR_MAP);

			SoundEffects.getInstance().startTownSound();

			isGameOver = false;

			mLm = new LayerManager();

			mLm.append(mHero);

			if (isDrive) {

				mLm.append(mTank);
			}
			if (driveMap == LADUO_BAR_MAP) {

				mLm.append(mTank);
			}
			mLm.append(mNpc[0]);
			mLm.append(mNpc[1]);
			mLm.append(mNpc[2]);
			mLm.append(mNpc[3]);
			mLm.append(mNpc[4]);

			mLm.append(mBoxLayer);
			mLm.append(mBackLayer);

			break;

		case LADUO_INN_MAP:

			gotoMap(LADUO_INN_MAP);

			SoundEffects.getInstance().startTownSound();

			isGameOver = false;

			mLm = new LayerManager();

			mLm.append(mHero);

			if (isDrive) {

				mLm.append(mTank);
			}
			if (driveMap == LADUO_INN_MAP) {

				mLm.append(mTank);
			}
			mLm.append(mNpc[0]);
			mLm.append(mNpc[1]);
			mLm.append(mNpc[2]);
			mLm.append(mNpc[3]);
			mNpc[4].setVisible(false);
			
			mLm.append(mEvent[5]);
			mLm.append(mEvent[6]);

			mLm.append(mBoxLayer);
			mLm.append(mBackLayer);

			break;

		case LADUO_CHUANSONG_MAP:

			gotoMap(LADUO_CHUANSONG_MAP);

			SoundEffects.getInstance().startTownSound();

			isGameOver = false;

			mLm = new LayerManager();

			mLm.append(mHero);

			if (isDrive) {

				mLm.append(mTank);
			}
			if (driveMap == LADUO_CHUANSONG_MAP) {

				mLm.append(mTank);
			}
			mLm.append(mNpc[0]);
			mNpc[1].setVisible(false);
			mNpc[2].setVisible(false);
			mNpc[3].setVisible(false);
			mNpc[4].setVisible(false);

			mLm.append(mBoxLayer);
			mLm.append(mBackLayer);

			break;

		case LADUO_MINGQI_MAP:

			gotoMap(LADUO_MINGQI_MAP);

			SoundEffects.getInstance().startTownSound();

			isGameOver = false;

			mLm = new LayerManager();

			mLm.append(mHero);

			if (isDrive) {

				mLm.append(mTank);
			}
			if (driveMap == LADUO_MINGQI_MAP) {

				mLm.append(mTank);
			}
			mLm.append(mNpc[0]);
			mLm.append(mNpc[1]);
			mLm.append(mNpc[2]);
			mNpc[3].setVisible(false);
			mNpc[4].setVisible(false);

			mLm.append(mEvent[6]);
			
			mLm.append(mBoxLayer);
			mLm.append(mBackLayer);

			break;

		case TANK1_1F_MAP:

			gotoMap(TANK1_1F_MAP);

			SoundEffects.getInstance().startTankfieldSound();

			isGameOver = false;

			mLm = new LayerManager();

			mLm.append(mHero);

			if (isDrive){

				mLm.append(mTank);
			}

			if (driveMap == TANK1_1F_MAP){

				mLm.append(mTank);
			}

			mNpc[0].setVisible(false);
			mNpc[1].setVisible(false);
			mNpc[2].setVisible(false);
			mNpc[3].setVisible(false);
			mNpc[4].setVisible(false);
			mLm.append(mBoxLayer);
			mLm.append(mBackLayer);

			break;

		case TANK1_2F_MAP:

			gotoMap(TANK1_2F_MAP);

			SoundEffects.getInstance().startTankfieldSound();

			isGameOver = false;

			mLm = new LayerManager();

			mLm.append(mHero);

			if (isDrive){

				mLm.append(mTank);
			}

			if (driveMap == TANK1_2F_MAP){

				mLm.append(mTank);
			}

			mNpc[0].setVisible(false);
			mNpc[1].setVisible(false);
			mNpc[2].setVisible(false);
			mNpc[3].setVisible(false);
			mNpc[4].setVisible(false);
			mLm.append(mBoxLayer);
			mLm.append(mBackLayer);

			break;

		case TANK1_3F_MAP:

			gotoMap(TANK1_3F_MAP);

			SoundEffects.getInstance().startTankfieldSound();

			isGameOver = false;

			mLm = new LayerManager();

			mLm.append(mHero);

			if (isDrive){

				mLm.append(mTank);
			}

			if (driveMap == TANK1_3F_MAP){

				mLm.append(mTank);
			}

			mNpc[0].setVisible(false);
			mNpc[1].setVisible(false);
			mNpc[2].setVisible(false);
			mNpc[3].setVisible(false);
			mNpc[4].setVisible(false);
			mLm.append(mBoxLayer);
			mLm.append(mBackLayer);

			break;
		default:

			break;

		}

		System.out.println("初始化完成");

	}

	/**游戏开始*/
	public synchronized void start() {

		animationThread = new Thread(this);
		animationThread.start();
		startTime = System.currentTimeMillis() - gameDuration;
	}

	/**游戏停止*/
	public synchronized void stop() {

		gameDuration = System.currentTimeMillis() - startTime;
		animationThread = null;

		if (isGameOver) {

			time = (System.currentTimeMillis() - startTime);
		}

	}

	/**商店处理*/
	public void Shop(Graphics g, int mapID, int eventID) {

		/*初始化商店管理器*/
		ShopManager sm = new ShopManager(mapID, eventID - 100);

		/*获取键盘输入*/
		int KeyState  = getKeyStates();	

		/*获取触发的商店类型*/
		shopType = sm.getShopType();

		/*商店菜单,商店信息的绘制*/
		g.setColor(0xffffff);

		g.setFont(Font.getFont(Font.STYLE_BOLD));

		g.drawImage(shopImg, 0, 0, Graphics.TOP | Graphics.LEFT);

		g.drawImage(cursorImg, cursorwidth + 62, 5 + cursorheight, Graphics.TOP | Graphics.LEFT);

		g.drawString(sm.getShopName(), 5, 10,  Graphics.TOP | Graphics.LEFT);
		g.drawString(String.valueOf(mHero.getHeroMoney()), 12, 32, Graphics.TOP | Graphics.LEFT);
		g.drawString(sm.getCho1(), 80, 2, Graphics.TOP | Graphics.LEFT);		
		g.drawString(sm.getCho2(), 80, 12, Graphics.TOP | Graphics.LEFT);
		g.drawString(sm.getCho3(), 80, 22, Graphics.TOP | Graphics.LEFT);

		g.drawImage(menuImg, 0, getHeight() - menuImg.getHeight(), Graphics.TOP | Graphics.LEFT);
		g.drawString("欢迎光临", 80, getHeight() -40, Graphics.TOP | Graphics.LEFT);
		g.drawString(sm.getShopName(), 80, getHeight() -30, Graphics.TOP | Graphics.LEFT);

		/*如果不是在显示商店库存物品的时候*/
		if(isShop_ItemList || isShop_EquList){

			/*根据显示的物品页数,更新商店菜单所能达到的最大深度*/
			if(shopPage == 0){

				listH = shopItemList.length >= 4 ? 30 : (shopItemList.length -1)*10;
			}else if(shopPage == 1){

				listH = (shopItemList.length % 4 - 1) * 10;
			}

		}else if(isShop_Sell){/*如果是在显示出售物品*/

			listH = 30;
		}

		/*输入上键,指针坐标更新*/
		if ((KeyState & UP_PRESSED) != 0) {

			if (cursorheight >= 0) {

				cursorheight -= 10;
			}
			if (cursorheight < 0){

				if(shopPage == 1){

					shopPage = 0;

					cursorheight = 0;
					cursorwidth = 0;
				}
				if(shopPage == 0){

					cursorheight = 0;
					cursorwidth = 0;
				}
			}

		}

		/*输入下键,指针坐标更新*/
		if ((KeyState & DOWN_PRESSED) != 0) {

			if (cursorheight <= listH) {

				cursorheight += 10;
			}

			/*如果库存物品的数量大于4个,则进行翻页处理*/
			if ((isShop_ItemList || isShop_EquList) && cursorheight > listH && (shopItemList.length / 5 > 0)){

				if(shopPage == 1){

					cursorheight = listH;
					cursorwidth = 0;
				}
				if(shopPage == 0){

					shopPage = 1;

					cursorheight = 0;
					cursorwidth = 0;
				}			

⌨️ 快捷键说明

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