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