📄 recstore.java
字号:
import javax.microedition.rms.*;
import java.io.*;
public class RecStore {
private RecordStore rs = null; //作保存游戏用
//String rsname="save";
long[] goodsPrice = { //构造持有物品价格的数组
Base.vcd_price, Base.phone_price, Base.sk_price,
Base.cigar_price, Base.wine_price, Base.toy_price,
Base.book_price, Base.car_price
};
long[] goodsNumber = { //构造持有物品数量的数组
Base.vcd_number, Base.phone_number, Base.sk_number,
Base.cigar_number, Base.wine_number, Base.toy_number,
Base.book_number, Base.car_number
};
long[] marketPrice = { // 构造当前物品价格的数组
Base.market_vcd_price, Base.market_phone_price, Base.market_sk_price,
Base.market_cigar_price, Base.market_wine_price,
Base.market_toy_price,
Base.market_book_price, Base.market_car_price
};
//标签偏移量
int[] marks = {
Base.index,
Base.dx, Base.dy, //游戏界面偏移量
Base.metro_dx, Base.metro_dy, //地铁界面偏移量
Base.sysDy,
Base.menuList, //game界面菜单的编号
Base.goodsItem, //商品的编号
Base.roomPage, //仓库的页面数
Base.marketStatus, //市场界面的状态,包括交易成功失败的界面绘制的控制参数
Base.bankStatus, //银行的界面编号
Base.postOfficeStatus, //邮局界面编号
Base.interStatus, //中介界面编号
Base.hospitalStatus, //医院界面编号
Base.addressID //地铁各站的编号
};
//属性变量
long[] status = {
Base.nDate, // 日期(游戏时间,上限40天)
Base.nHealth, //健康点数-30到100点少于-20点就回家养伤,告别北京
Base.lCash, //现金数
Base.lSave, //存款
Base.lDebt, //债务
Base.lRoom //库房大小
};
public RecStore() {
rs = openRSAnyway("saveGame2");
System.out.println("constructor"+marks.length);
}
//创建新的记录集
public RecordStore openRSAnyway(String rsname) {
//数据仓库的名称大于32个字符就不能够接受
if (rsname.length() > 32) {
return null;
}
try {
rs = RecordStore.openRecordStore(rsname, true);
}
catch (Exception e) {
//return null;
System.out.println("openrs "+e);
}
return rs;
}
//long2byte[]
public static byte[] createByteGroup(long data) {
String st = String.valueOf(data);
return st.getBytes();
}
//int2byte[]
public byte[] createByteGroup(int data) {
String st = String.valueOf(data);
return st.getBytes();
}
//byte[]2long
public static long byte2Long(byte[] data) {
String st = new String(data);
return Long.parseLong(st);
}
//byte[]2int
public int byte2Int(byte[] data) {
String st = new String(data);
return Integer.parseInt(st);
}
/*
*保存游戏当前数据 Base.java
*/
public void saveGame() {
//ID为记录集中该记录所载的ID号
try {
if(rs.getNumRecords()==0){
//rs = RecordStore.openRecordStore(rsname, true);
/*
*******持有商品的价格*******
*ID.01 持有商品VCD的平均价格
*ID.02 持有商品手机的平均价格
*ID.03 持有商品化妆品的平均价格
*ID.04 持有商品香烟的平均价格
*ID.05 持有商品白酒的平均价格
*ID.06 持有商品玩具的平均价格
*ID.07 持有商品黄色书刊的平均价格
*ID.08 持有商品汽车的平均价格
*/
for (int i = 0; i < goodsPrice.length; i++) {
rs.addRecord(createByteGroup(goodsPrice[i]), 0,
createByteGroup(goodsPrice[i]).length);
}
/*
******持有商品的数量******
*ID.09 持有商品VCD的数量
*ID.10 持有商品手机的数量
*ID.11 持有商品化妆品的数量
*ID.12 持有商品香烟的数量
*ID.13 持有商品白酒的数量
*ID.14 持有商品玩具的数量
*ID.15 持有商品黄色书刊的数量
*ID.16 持有商品汽车的数量
*/
for (int i = 0; i < goodsNumber.length; i++) {
rs.addRecord(createByteGroup(goodsNumber[i]), 0,
createByteGroup(goodsNumber[i]).length);
}
/*
*****当前黑市商品的价格****
*ID.17 黑市vcd的价格
*ID.18 黑市手机的价格
*ID.19 黑市化妆品的价格
*ID.20 黑市香烟的价格
*ID.21 黑市vcd的价格
*ID.22 黑市vcd的价格
*ID.23 黑市vcd的价格
*ID.24 黑市vcd的价格
*/
for (int i = 0; i < marketPrice.length; i++) {
rs.addRecord(createByteGroup(marketPrice[i]), 0,
createByteGroup(marketPrice[i]).length);
}
/*
******当前系统状态标签等的值******
*ID.25 index控制人物动画中人物的切割
*ID.26 游戏界面人物的偏移量,相对值 横坐标dx
*ID.27 游戏界面人物的偏移量,相对值 纵坐标dy
*ID.28 地铁界面光标的偏移量,相对值 横坐标metro_dx
*ID.29 地铁界面光标的偏移量,相对值 纵坐标metro_dy
*ID.30 sysDy,系统界面的纵坐标偏移量
*ID.31 game界面菜单的编号menulist
*ID.32 商品的编号
*ID.33 仓库的页面数roomPage
*ID.34 市场界面的状态,包括交易成功失败的界面绘制的控制参数marketStatus
*ID.35 银行的界面编号
*ID.36 邮局界面编号
*ID.37 中介界面编号
*ID.38 医院界面编号
*/
for (int i = 0; i < marks.length; i++) {
rs.addRecord(createByteGroup(marks[i]), 0,
createByteGroup(marks[i]).length);
}
/*
******属性变量的设置*****
*ID.39 nDate,游戏的时间
*ID.40 nHealth,人物的健康点数
*ID.41 lCash,先进的数量
*ID.42 lSave,存款的数量
*ID.43 lDebt,债务的数量
*ID.44 lRoom,库房的大小
*/
for (int i = 0; i < marks.length; i++) {
if (i == 0) {
System.out.println("Base.ndate" + Base.nDate);
System.out.println("status[0]" + status[0]);
}
rs.addRecord(createByteGroup(status[i]), 0,
createByteGroup(status[i]).length);
}
rs.closeRecordStore();
}else if(rs.getNumRecords()>0){
for (int i = 1; i <= rs.getNumRecords(); i++) {
switch (i) {
/*
*******持有商品的价格*******
*/
case 1: //ID.01 改变记录中持有商品VCD的平均价格
rs.setRecord(i,createByteGroup(Base.vcd_price), 0,
createByteGroup(Base.vcd_price).length);
break;
case 2: //ID.02 持有商品手机的平均价格
rs.setRecord(i,createByteGroup(Base.phone_price), 0,
createByteGroup(Base.phone_price).length);
break;
case 3: //ID.03 持有商品化妆品的平均价格
rs.setRecord(i,createByteGroup(Base.sk_price), 0,
createByteGroup(Base.sk_price).length);
break;
case 4: //ID.04 持有商品香烟的平均价格
rs.setRecord(i,createByteGroup(Base.cigar_price), 0,
createByteGroup(Base.cigar_price).length);
break;
case 5: //ID.05 持有商品白酒的平均价格
rs.setRecord(i,createByteGroup(Base.wine_price), 0,
createByteGroup(Base.wine_price).length);
break;
case 6: //ID.06 持有商品玩具的平均价格
rs.setRecord(i,createByteGroup(Base.toy_price), 0,
createByteGroup(Base.toy_price).length);
break;
case 7: //ID.07 持有商品黄色书刊的平均价格
rs.setRecord(i,createByteGroup(Base.book_price), 0,
createByteGroup(Base.book_price).length);
break;
case 8: //ID.08 持有商品汽车的平均价格
rs.setRecord(i,createByteGroup(Base.car_price), 0,
createByteGroup(Base.car_price).length);
break;
/*
******持有商品的数量******
*/
case 9: //ID.09 持有商品VCD的数量
rs.setRecord(i,createByteGroup(Base.vcd_number), 0,
createByteGroup(Base.vcd_number).length);
break;
case 10: //ID.10 持有商品手机的数量
rs.setRecord(i,createByteGroup(Base.phone_number), 0,
createByteGroup(Base.phone_number).length);
break;
case 11: //ID.11 持有商品化妆品的数量
rs.setRecord(i,createByteGroup(Base.sk_number), 0,
createByteGroup(Base.sk_number).length);
break;
case 12: //ID.12 持有商品香烟的数量
rs.setRecord(i,createByteGroup(Base.cigar_number), 0,
createByteGroup(Base.cigar_number).length);
break;
case 13: //ID.13 持有商品白酒的数量
rs.setRecord(i,createByteGroup(Base.wine_number), 0,
createByteGroup(Base.wine_number).length);
break;
case 14: //ID.14 持有商品玩具的数量
rs.setRecord(i,createByteGroup(Base.toy_number), 0,
createByteGroup(Base.toy_number).length);
break;
case 15: //ID.15 持有商品黄色书刊的数量
rs.setRecord(i,createByteGroup(Base.book_number), 0,
createByteGroup(Base.book_number).length);
break;
case 16: //ID.16 持有商品汽车的数量
rs.setRecord(i,createByteGroup(Base.car_number), 0,
createByteGroup(Base.car_number).length);
break;
/*
*****当前黑市商品的价格****
*/
case 17: //ID.17 黑市vcd的价格
rs.setRecord(i,createByteGroup(Base.market_vcd_price), 0,
createByteGroup(Base.market_vcd_price).length);
break;
case 18: //ID.18 黑市手机的价格
rs.setRecord(i,createByteGroup(Base.market_phone_price), 0,
createByteGroup(Base.market_phone_price).length);
break;
case 19: //ID.19 黑市化妆品的价格
rs.setRecord(i,createByteGroup(Base.market_sk_price), 0,
createByteGroup(Base.market_sk_price).length);
break;
case 20: //ID.20 黑市香烟的价格
rs.setRecord(i,createByteGroup(Base.market_cigar_price), 0,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -