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

📄 levelloader.java

📁 J2ME开发的手机游戏需要安装诺基亚手机模拟器才能正常运行
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		map.walkableArea = new Vector();
		//多个行走区
		while (st.hasMoreElements()) {

			String walkArea = st.nextToken().trim();

			if (walkArea.length() == 0) {
				break;
			}

			st2 = new StringTokenizer(walkArea, "|");

			TiledLayer t2 = new TiledLayer(map.cols, map.cols, material,
					level.tileWidth, level.tileHeight);

			count = 0;
			while (st2.hasMoreTokens()) {
				int column = count % map.cols;
				int row = (count - column) / map.cols;
				t2.setCell(column, row, Integer
						.parseInt(st2.nextToken().trim()));
				count++;
			}

			map.walkableArea.addElement(t2);
		}

		ht.put(new Integer(map.mapNo), map);

		level.maps = ht;

	}
	
	
	/**
	 * 解析NPC数据段
	 * @param nd
	 * @param level
	 */

	private void parseNPCData(String nd, Level level) {

		StringTokenizer st = new StringTokenizer(nd, "#");
		Hashtable ht = new Hashtable();
		while (st.hasMoreTokens()) {
			String npcData = st.nextToken();
			if (npcData.trim().length() == 0) {
				break;
			}
			NPC npc = new NPC();
			StringTokenizer st2 = new StringTokenizer(npcData, "|");

			String item = st2.nextToken().trim();
			npc.ID = Integer.parseInt(item);

			item = st2.nextToken().trim();
			npc.name = item;

			item = st2.nextToken().trim();
			npc.type = Integer.parseInt(item);

			item = st2.nextToken().trim();
			npc.attackPoint = Integer.parseInt(item);

			item = st2.nextToken().trim();
			npc.defendPoint = Integer.parseInt(item);

			item = st2.nextToken().trim();
			int id = Integer.parseInt(item);
			if (id >= 0) {
				Image srcImage = (Image) level.allImages.get(new Integer(id));
				int tw = Integer.parseInt(st2.nextToken().trim());
				int th = Integer.parseInt(st2.nextToken().trim());
				npc.sprite = new Sprite(srcImage, tw, th);
				item = st2.nextToken().trim();
				npc.startFrameIndex = Integer.parseInt(item);
				//				System.out.println("npc.startFrameIndex="+npc.startFrameIndex);
				item = st2.nextToken().trim();
				npc.endFrameIndex = Integer.parseInt(item);
				//				System.out.println("npc.endFrameIndex="+npc.endFrameIndex);
			}
			
			//对话类NPC

			if (npc.type == 1) {
				String talks = st2.nextToken().trim();
				StringTokenizer st3 = new StringTokenizer(talks, "^");
				Vector tv = new Vector();
				while (st3.hasMoreTokens()) {
					item = st3.nextToken();

					tv.addElement(item.trim());
				}
				npc.talkContents = tv;
				//武器贩卖类
			} else if (npc.type == 2) {
				npc.jacketVec = new Vector();
				npc.weaponVec = new Vector();
				item = st2.nextToken().trim();
				item = item.substring(1, item.length() - 1);
				StringTokenizer st3 = new StringTokenizer(item, "^");
				Hashtable all = level.properties;
				while (st3.hasMoreElements()) {
					String temp = st3.nextToken();
					Property p = (Property) all.get(Integer.valueOf(temp));
					if (p.type == 1) {
						npc.weaponVec.addElement(p);
					} else if (p.type == 3) {
						npc.jacketVec.addElement(p);
					}
				}
				//药品贩卖类
			} else if (npc.type == 3) {
				npc.medicVec = new Vector();

				item = st2.nextToken().trim();
				item = item.substring(1, item.length() - 1);
				StringTokenizer st3 = new StringTokenizer(item, "^");
				Hashtable all = level.properties;
				while (st3.hasMoreElements()) {
					String temp = st3.nextToken();
					Property p = (Property) all.get(Integer.valueOf(temp));
					if (p.type == 2) {
						npc.medicVec.addElement(p);
					}
				}

			}

			ht.put(new Integer(npc.ID), npc);

		}

		level.npcs = ht;
	}
	
	//解析道具数据
	private void parsePropertyData(String pd, Level level) {
		StringTokenizer st = new StringTokenizer(pd, "#");
		Hashtable ht = new Hashtable();
		while (st.hasMoreTokens()) {
			String property = st.nextToken();
			if (property.trim().length() == 0) {
				break;
			}

			Property pro = new Property();
			StringTokenizer st2 = new StringTokenizer(property, "|");

			String item = st2.nextToken().trim();

			pro.ID = Integer.parseInt(item);

			item = st2.nextToken().trim();
			pro.name = item;

			item = st2.nextToken().trim();
			pro.type = Integer.parseInt(item);

			item = st2.nextToken().trim();
			pro.description = item;

			item = st2.nextToken().trim();
			pro.price = Integer.parseInt(item);

			item = st2.nextToken().trim();
			pro.addHP = Integer.parseInt(item);

			item = st2.nextToken().trim();
			pro.addMP = Integer.parseInt(item);

			item = st2.nextToken().trim();
			pro.addAttackPoint = Integer.parseInt(item);

			item = st2.nextToken().trim();
			pro.addDefendPoint = Integer.parseInt(item);

			item = st2.nextToken().trim();
			int id = Integer.parseInt(item);
			//有图片
			if (id >= 0) {
				Image srcImage = (Image) level.allImages.get(new Integer(id));
				int tw = Integer.parseInt(st2.nextToken().trim());
				int th = Integer.parseInt(st2.nextToken().trim());
				pro.sprite = new Sprite(srcImage, tw, th);
				item = st2.nextToken().trim();
				pro.startFrameIndex = Integer.parseInt(item);

				item = st2.nextToken().trim();
				pro.endFrameIndex = Integer.parseInt(item);
			}

			ht.put(new Integer(pro.ID), pro);

		}

		level.properties = ht;


	}
	
	/**
	 * 解析技能数据段
	 * @param sd
	 * @param level
	 */

	private void parseSkillsData(String sd, Level level) {
		StringTokenizer st = new StringTokenizer(sd, "#");
		Hashtable ht = new Hashtable();
		while (st.hasMoreTokens()) {
			String skill = st.nextToken();
			if (skill.trim().length() == 0) {
				break;
			}
			Skill sk = new Skill();
			StringTokenizer st2 = new StringTokenizer(skill, "|");

			String item = st2.nextToken().trim();
			sk.ID = Integer.parseInt(item);

			item = st2.nextToken().trim();
			sk.name = item;

			item = st2.nextToken().trim();
			sk.description = item;

			item = st2.nextToken().trim();
			sk.type = Integer.parseInt(item);

			item = st2.nextToken().trim();
			sk.requiredLevel = Integer.parseInt(item);

			item = st2.nextToken().trim();
			sk.price = Integer.parseInt(item);

			item = st2.nextToken().trim();
			sk.isPercent = Integer.parseInt(item) > 0 ? true : false;

			item = st2.nextToken().trim();
			sk.mpCost = Integer.parseInt(item);

			item = st2.nextToken().trim();
			sk.hpCost = Integer.parseInt(item);

			item = st2.nextToken().trim();
			sk.addAttackPoint = Integer.parseInt(item);

			item = st2.nextToken().trim();
			sk.addDefendPoint = Integer.parseInt(item);

			item = st2.nextToken().trim();
			int id = Integer.parseInt(item);
			//有图片
			if (id >= 0) {
				Image srcImage = (Image) level.allImages.get(new Integer(id));
				System.out.println("srcImage="+srcImage);
				int tw = Integer.parseInt(st2.nextToken().trim());
				int th = Integer.parseInt(st2.nextToken().trim());
				sk.sprite = new Sprite(srcImage, tw, th);
				item = st2.nextToken().trim();
				sk.startFrameIndex = Integer.parseInt(item);

				item = st2.nextToken().trim();
				sk.endFrameIndex = Integer.parseInt(item);
			}

			ht.put(new Integer(sk.ID), sk);

		}

		System.out.println("skill ht=" + ht);

		level.skills = ht;

	}
	/**
	 * 解析关卡元素据段
	 * @param metaData
	 * @param level
	 */
	private void parseMetaData(String metaData, Level level) {
		int index1 = metaData.indexOf("[");
		int index2 = metaData.indexOf("]", index1);
		String s1 = metaData.substring(index1 + 1, index2);
		StringTokenizer st = new StringTokenizer(s1, "|");

		String item = st.nextToken();
		level.name = item;

		item = st.nextToken();
		level.description = item;

		item = st.nextToken();
		level.tileWidth = (Integer.parseInt(item));

		item = st.nextToken();
		level.tileHeight = (Integer.parseInt(item));

		index1 = metaData.indexOf("[", index2 + 1);
		index2 = metaData.indexOf("]", index1 + 1);

		s1 = metaData.substring(index1 + 1, index2);
		st = new StringTokenizer(s1, "|");

		level.missionDesc = st.nextToken();
		level.missionType = Integer.parseInt(st.nextToken());
		level.missionValue = Integer.parseInt(st.nextToken());

		index1 = metaData.indexOf("[", index2 + 1);
		index2 = metaData.indexOf("]", index1 + 1);

		s1 = metaData.substring(index1 + 1, index2);
		st = new StringTokenizer(s1, "|");

		Hashtable ht = new Hashtable();

		while (st.hasMoreTokens()) {
			item = st.nextToken();
			item = item.substring(1, item.length() - 1);
			int index = item.indexOf(",");
			int id = Integer.parseInt(item.substring(0, index));
			String imageFile = item.substring(index + 1);
			Image image = (Image)ResourceLoader.pngFiles.get(imageFile);
			
			if (image != null) {
				ht.put(new Integer(id), image);
			}

		}
		level.allImages = (ht);

	}

}

⌨️ 快捷键说明

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