📄 resourceloader.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 + -