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

📄 systemmenu.java

📁 《神州》RPG游戏引擎
💻 JAVA
字号:
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

public class SystemMenu
{
    private Canvas1 canvas;
    private Graphics g;
    private int width,height;
    public RecordTab recordTab;
    public DataRecorder dataRcder;
    private String[] strRcdLine;
    public static boolean loading;


    public SystemMenu(Canvas1 _canvas)
    {
        this.canvas = _canvas;
        this.g = canvas.g;
        this.width = canvas.width;
        this.height = canvas.height;

        dataRcder = new DataRecorder();
        dataRcder.init();
        //strRcdLine = dataRcder.getRcdLine();
    }

    public void ShowUI(int inStatus)
    {
        int w = 120;
        int h = 150;

        int x = width/2 - w/2;
        int y = height/2 - h/2;

        g.setColor(0xDAE6D1);  //对话框背景色
        g.fillRect(x,y,w,h);
        g.setColor(0x618E3F);
        g.drawRect(x,y,w,h);   //外框

        if (recordTab == null)
            tabInit(w,h);

        recordTab.paint(g, inStatus);
    }

    private void tabInit(int w, int h)
    {
        int x = width/2 - w/2;
        int y = height/2 - h/2;

        g.setColor(0xDAE6D1);  //对话框背景色
        g.fillRect(x,y,w,h);
        g.setColor(0x618E3F);
        g.drawRect(x,y,w,h);   //外框

        int bLMargin = 5;
        int bTMargin = 5;

        int bw = w - 10;
        int bh = h - 13;
        int tabIndex = 0;

        recordTab = new RecordTab();

        recordTab.setTabName(new String[]{"系统菜单"});
        recordTab.setTabIndex(tabIndex);
        recordTab.setBgColor(0xC7E2B3);
        recordTab.setHighLightColor(0xF1F8EC);
        recordTab.setPosition(x + bLMargin, y + bTMargin);
        recordTab.setW(bw);
        recordTab.setH(bh);

        if(tabIndex == 0)
        {
            recordTab.addElement("保存进度");
            recordTab.addElement("读取进度");
            recordTab.addElement("音乐");
            recordTab.addElement("振动");
            recordTab.addElement("回主菜单");
        }

    }

    public void getCmdLineContent()
    {
        if (dataRcder != null)
            strRcdLine = dataRcder.getRcdShowLine();
    }

    public void showCmdMenu()
    {
        if (canvas.sysMenuCmd==null)
            return;
        if (recordTab.getRowIndex()<0 || recordTab.getRowIndex()>1)
            return;

        canvas.sysMenuCmd.setCommand(strRcdLine);

        String tmp;
        if (strRcdLine.length>0)
            tmp = strRcdLine[0];
        else
            tmp = "";

        int x = width/2 - Style.font.stringWidth(tmp)/2;
        int y = recordTab.getIdxRowY() + Style.font.getHeight();

        canvas.sysMenuCmd.setPosition(x, y);
        canvas.sysMenuCmd.paint(g);

    }

    public String getMenuCmdOID(int idx)
    {
        if (idx < 0 || idx >= canvas.sysMenuCmd.command.length)
            return "";

        String[] tmp = dataRcder.getRecordString("rsRecordBook");
        String strTmp = tmp[idx];
        StringParser parser = new StringParser(strTmp);
        String retOID = parser.getValue("OID");

        return retOID;
    }

    public void saveRecord(String strOID)
    {
        if (dataRcder == null)
            return;


        dataRcder.delRcdByFilter("rsBag", strOID);
        dataRcder.delRcdByFilter("rsEquip", strOID);
        dataRcder.delRcdByFilter("rsEquipUsed", strOID);
        dataRcder.delRcdByFilter("rsScene", strOID);
        dataRcder.delRcdByFilter("rsMainRole", strOID);
        dataRcder.delRcdByFilter("rsSkills", strOID);
        dataRcder.delRcdByFilter("rsMission", strOID);

        dataRcder.insRcdByFilter("rsBag", strOID);
        dataRcder.insRcdByFilter("rsEquip", strOID);
        dataRcder.insRcdByFilter("rsEquipUsed", strOID);
        dataRcder.insRcdByFilter("rsScene", strOID);
        dataRcder.insRcdByFilter("rsMainRole", strOID);
        dataRcder.insRcdByFilter("rsSkills", strOID);
        dataRcder.insRcdByFilter("rsMission", strOID);

        dataRcder.updRcdBook(strOID);
    }

    public void loadRecord(String strOID)
    {
        if (dataRcder == null)
            return;

        loading = true;        

        String[] str;
        Mat tmpMat;
        Skill tmpSkill;
        Mission tmpMission;
        StringParser parser;

        System.out.println("~~~~~~~~~Initialize");
        Image playerImg = Tools.getImage("/role/player.png");
        GameMIDlet.mainRole=new MainRole(playerImg,24,32); //创建主角对象
        
        GameMIDlet.mainRole.initMat();  //initialize
        GameMIDlet.mainRole.initSkill();
        GameMIDlet.mainRole.initMission();

        System.out.println("~~~~~~~~~bag");
        str = dataRcder.getRcdByFilter("rsBag", strOID);
        for (int i = 0; str != null && i < str.length; i++)
        {
            parser = new StringParser(str[i]);
            tmpMat = MatLib.getMatByName(parser.getValue("MatName"));
            tmpMat.setAmount(parser.getIntValue("MatAmount"));
            GameMIDlet.mainRole.addMat(tmpMat);
        }


        System.out.println("~~~~~~~~~rsSkills " + strOID);
        str = dataRcder.getRcdByFilter("rsSkills", strOID);
        for (int i = 0; str != null && i < str.length; i++)
        {
            parser = new StringParser(str[i]);
            tmpSkill = SkillLib.getSkillByName(parser.getValue("SkillName"));
            System.out.println(tmpSkill.getName());
            GameMIDlet.mainRole.addSkill(tmpSkill);
        }


        System.out.println("~~~~~~~~~Equip");
        str = dataRcder.getRcdByFilter("rsEquip", strOID);
        for (int i = 0; str != null && i < str.length; i++)
        {
            parser = new StringParser(str[i]);
            tmpMat = MatLib.getMatByName(parser.getValue("EquipName"));
            tmpMat.setAmount(parser.getIntValue("EquipAmount"));
            GameMIDlet.mainRole.addMat(tmpMat);
        }


        System.out.println("~~~~~~~~~EquipUsed");
        str = dataRcder.getRcdByFilter("rsEquipUsed", strOID);
        for (int i = 0;  str != null && i < str.length; i++)
        {
            parser = new StringParser(str[i]);
            tmpMat = MatLib.getMatByName(parser.getValue("EquipName"));
            tmpMat.setAmount(Integer.parseInt(parser.getValue("EquipAmount")));
            tmpMat.setPart(Integer.parseInt(parser.getValue("EquipPart")));
            GameMIDlet.mainRole.addEquip(tmpMat);
        }


        System.out.println("~~~~~~~~~Scene");
        str = dataRcder.getRcdByFilter("rsScene", strOID);
        for (int i = 0; str != null && i < str.length; i++)
        {
            parser = new StringParser(str[0]);
            SceneLib.currentSceneIndex = parser.getIntValue("SceneIndex");

            boolean bln = false;
            if (!parser.getValue("isSonic").equals("false"))
                bln = true;
            GameMIDlet.isSonic = bln;

            bln = false;
            if (!parser.getValue("isVibratory").equals("false"))
                bln = true;
            GameMIDlet.isVibratory = bln;
        }

        System.out.println("~~~~~~~~~Mission");
        str = dataRcder.getRcdByFilter("rsMission", strOID);
        for (int i = 0; str != null && i < str.length; i++)
        {
            System.out.println(str[i]);
            parser = new StringParser(str[i]);

            tmpMission = MissionLib.getMissionByName(parser.getValue("MissionName"));
            tmpMission.setStatus(parser.getIntValue("MissionStatus"));

            GameMIDlet.mainRole.addMission(tmpMission);
        }

        System.out.println("~~~~~~~~~mainRole");
        str = dataRcder.getRcdByFilter("rsMainRole", strOID);
        for (int i = 0; str != null && i < str.length; i++)
        {
            parser = new StringParser(str[i]);
            GameMIDlet.mainRole.setLv(parser.getIntValue("Lv"));
            GameMIDlet.mainRole.setLife(parser.getIntValue("Life"));
            GameMIDlet.mainRole.setMaxLife(parser.getIntValue("MaxLife"));
            GameMIDlet.mainRole.setPower(parser.getIntValue("Power"));
            GameMIDlet.mainRole.setDefence(parser.getIntValue("Defence"));
            GameMIDlet.mainRole.setMagic(parser.getIntValue("Magic"));
            GameMIDlet.mainRole.setMaxMagic(parser.getIntValue("MaxMagic"));
            GameMIDlet.mainRole.setMoney(parser.getIntValue("Money"));
            GameMIDlet.mainRole.setActSpeed(parser.getIntValue("ActSpeed"));
            GameMIDlet.mainRole.setExp(parser.getIntValue("Exp"));
            GameMIDlet.mainRole.setNextExp(parser.getIntValue("NextExp"));
            int x = parser.getIntValue("RoleX");
            int y = parser.getIntValue("RoleY");
            GameMIDlet.mainRole.setPosition(x, y);
            GameMIDlet.mainRole.currentDirect = parser.getIntValue("RoleDirect");
            SceneLib.scenes[SceneLib.currentSceneIndex].setRoleDir(GameMIDlet.mainRole.currentDirect);
            //System.out.println("GameMIDlet.mainRole.currentDirect="+GameMIDlet.mainRole.currentDirect);
            GameMIDlet.mainRole.initDirect();
        }
        canvas.stop();
        canvas.loadScene();

        System.out.println("~~~~~~~~~游戏载入成功");
        loading = false;  //loadscence 's flag mianrole 初始位置
        canvas.startGame();
    }

    private void showConsoleMsg(String[] str)
    {
        //System.out.println("-----------------: " + str.length);
        for (int i = 0; i < str.length; i++)
        {
            System.out.println(str[i]);
        }
    }
}

⌨️ 快捷键说明

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