📄 resourceloader.java.bak
字号:
//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_zhcn = {"乔峰", "买武器护具", "卖武器护具",
"退出", "买药品", "卖药品", "功能", "价钱", "学习技能吗?", "同意", "不同意", "新游戏",
"继续游戏", "关于", "帮助", "退出游戏", "操作指南", "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
};
// 游戏涉及到的文字资源,繁体版
public static final String[] StringResource_zhtw = {
"喬峰", "買武器護具", "賣武器護具",
"退出", "買藥品", "賣藥品", "功能", "價錢", "學習技能嗎?", "同意", "不同意", "新遊戲",
"繼續遊戲", "關於", "幫助", "退出遊戲", "操作指南", "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 String[] StringResource = StringResource_zhcn;
static {
//选择locale
String locale = System.getProperty("microedition.locale");
if (locale.equals("zh-TW")) {
StringResource = StringResource_zhtw;
}
//该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");
ImageUtil.init(pngFilePos, "/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);
}
System.out.println("loading ok");
//装载MID
loadMID();
//资源装载结束
loadOver = true;
}
/**
* 装载PNG文件
*
* @param name
* png文件名
* @return
*/
public static Image loadPNG(String name) {
Image image = null;
try{
//利用ImageUtil
System.out.println("loading png"+name);
image = ImageUtil.createImage("/"+name + ".png");
if (image != null) {
pngFiles.put(name + ".png", image);
}
else
{
System.out.println(""+name +" load error");
}
}
catch(Exception e)
{}
return image;
}
/**
* 装载MID文件的方法。
*
*/
public void loadMID() {
try {
player = Manager.createPlayer(getClass().getResourceAsStream("/bgd.mid"), "audio/midi");
} catch (Exception e) {
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -