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

📄 resourceloader.java

📁 J2ME开发的手机游戏需要安装诺基亚手机模拟器才能正常运行
💻 JAVA
字号:
package org.gamecollege.j2me.rpg;


import javax.microedition.media.*;
import javax.microedition.media.Player;
import javax.microedition.lcdui.Image;
import java.util.Hashtable;

/**
 * 
 * 资源装载类
 *  
 */
public class ResourceLoader extends Thread {
	
	//保存png文件名,及该文件图像数据在压缩文件中的起始位置
	static Hashtable pngFiles = new Hashtable();
    //图片资源集合 key:png文件名 value:Image对象
	static Hashtable pngFilePos = new Hashtable();

	//资源装载完毕标志
	boolean loadOver;

	//表现主角的图片数组
	static Image[] players;

	//涉及到地图的图片数组
	static Image[] maps;

	//涉及到道具的图片数组
	static Image[] properties;

	//涉及到Npc的图片数组
	static Image[] npcs;

	//涉及到菜单的图片数组
	static Image[] menu;

	//涉及到技能的图片数组
	static Image[] skills;

	//装载资源时的闪屏图
	static Image flashImage;

	//媒体播放器
	static Player player;

	//游戏涉及到的文字资源
	public static final String[] StringResource = { "乔峰", "买武器护具", "卖武器护具",
			"退出", "买药品", "卖药品", "功能", "价钱", "学习技能吗?", "同意", "不同意", "新游戏",
			"继续游戏", "关于", "帮助", "退出游戏", "操作指南", "MGO for nokia S60",
			"版本:V0.0.1", "版权:游戏工厂", "等级"//20
			, "经验"//21
			, "下级经验"//22
			, "游戏结束"//23
			, "第一关"//24
			, "请选择关卡"//25
			, "装载数据,请稍候..."//26
			, "武器"//27
			, "护具"//28
			, "现有金钱"//29
			, "得经验值:"//30
			, "得金钱:"//31
			, "攻击力"//32
			, "防御力"//33
			, "返回"//34
			, "金钱"//35
			, "药品"//36
			, "技能"//37
			, "一般"//38
			, "恭喜你,升级了!"//39
			, "恭喜过关"//40
			, "学会技能:"//41
			, "过关条件"//42
			, "按数字键7查看主角属性"//43
			, "按数字键9查看过关任务"//44
			, "按数字键0回主菜单"//45
	};

	
	static {
		//该Hashtable的内容来自于bin compiler的index.txt文件
		pngFilePos.put("splashScreen.png", new Long(0));
		pngFilePos.put("skill_00.png", new Long(752));
		pngFilePos.put("property_00.png", new Long(930));
		pngFilePos.put("player_02.png", new Long(2520));
		pngFilePos.put("player_01.png", new Long(3075));
		pngFilePos.put("player_00.png", new Long(4027));
		pngFilePos.put("npc.png", new Long(6289));
		pngFilePos.put("menu_09.png", new Long(15972));
		pngFilePos.put("menu_08.png", new Long(17455));
		pngFilePos.put("menu_07.png", new Long(17824));
		pngFilePos.put("menu_06.png", new Long(18936));
		pngFilePos.put("menu_05.png", new Long(20046));
		pngFilePos.put("menu_04.png", new Long(20210));
		pngFilePos.put("menu_03.png", new Long(21524));
		pngFilePos.put("menu_02.png", new Long(21860));
		pngFilePos.put("menu_017.png", new Long(22009));
		pngFilePos.put("menu_016.png", new Long(22431));
		pngFilePos.put("menu_015.png", new Long(22582));
		pngFilePos.put("menu_014.png", new Long(22732));
		pngFilePos.put("menu_013.png", new Long(22926));
		pngFilePos.put("menu_012.png", new Long(24510));
		pngFilePos.put("menu_011.png", new Long(24630));
		pngFilePos.put("menu_010.png", new Long(26472));
		pngFilePos.put("menu_01.png", new Long(27239));
		pngFilePos.put("menu_00.png", new Long(28446));
		pngFilePos.put("map_00_04.png", new Long(29223));
		pngFilePos.put("map_00_03.png", new Long(37033));
		pngFilePos.put("map_00_02.png", new Long(44954));
		pngFilePos.put("map_00_01.png", new Long(53711));
		pngFilePos.put("map_00_00.png", new Long(55957));
		
		ImageUtil.init(pngFilePos, "/image/pngs.dat");
//		在静态初始化的时候就装载闪屏图,这样,闪屏图就是最早装载的资源
		//这样才能在显示闪屏图的同时继续装载资源
		flashImage = loadPNG("splashScreen");
	}

	/**
	 * 构造子
	 */
	public ResourceLoader() {

		// TODO 自动生成构造函数存根
		players = new Image[3];
		maps = new Image[5];
		properties = new Image[1];
		npcs = new Image[1];
		menu = new Image[18];
		skills = new Image[1];

	}

	/**
	 * 开线程装载资源
	 */

	public void run() {

		//装载图片

		for (int i = 0; i < players.length; i++) {
			players[i] = loadPNG("player_0" + i);
		}
		for (int i = 0; i < maps.length; i++) {
			maps[i] = loadPNG("map_00_0" + i);
		}
		for (int i = 0; i < properties.length; i++) {
			properties[i] = loadPNG("property_0" + i);
		}
		for (int i = 0; i < npcs.length; i++) {
			npcs[i] = loadPNG("npc");
		}
		for (int i = 0; i < menu.length; i++) {
			menu[i] = loadPNG("menu_0" + i);
		}
		for (int i = 0; i < skills.length; i++) {
			skills[i] = loadPNG("skill_0" + i);
		}

		//装载MID

		loadMID();
		//资源装载结束
		loadOver = true;

	}

	/**
	 * 装载PNG文件
	 * 
	 * @param name
	 *            png文件名
	 * @return
	 */

	public static Image loadPNG(String name) {
		Image image = null;
		//利用ImageUtil
		image = ImageUtil.createImage(name + ".png");

		if (image != null) {
			pngFiles.put(name + ".png", image);
		}
		return image;
	}

	/**
	 * 装载MID文件的方法。
	 *  
	 */

	public void loadMID() {
		try {
			player = Manager.createPlayer(getClass().getResourceAsStream(
					"/audio/bgd.mid"), "audio/midi");

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

⌨️ 快捷键说明

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