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

📄 resourceloader.java.bak

📁 游戏学院《天下武王》教学实例
💻 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 + -