📄 rmsscore.java
字号:
package demo;
import javax.microedition.rms.RecordStore;
public class RMSScore {
public int m_nHighScore = 0; //历史最高分
public int m_nCurScore = 0; //当前得分
/*********利用RMS系统存储最高得分************/
public void SaveHighScore(){
if( m_nCurScore <= m_nHighScore ) //如果本次得分低于历史最高分
return; //直接返回
m_nHighScore = m_nCurScore; //刷新记录
try{
byte b[] = new byte[4];
int temp = m_nHighScore;
//用一个循环将一个int型数据(4字节),存放在byte数组中
for (int i = b.length - 1; i >= 0; i--){
b[i] = new Integer(temp & 0xff).byteValue();
temp = temp >> 8;
}
//打开RecordStore,没有则新建
RecordStore rs = RecordStore.openRecordStore(
"SpeedTestScore",true);
if( rs.getNumRecords() > 0 ){ //如果记录数大于0
rs.setRecord(1, b, 0, b.length); //更改第一条记录
}
else{
//如果没有记录,则添加记录
rs.addRecord(b,0,b.length);
}
rs.closeRecordStore();
}
catch (Exception ex){
ex.printStackTrace();
}
}
/*********利用RMS系统读取最高得分************/
public void LoadHighScore(){
try{
RecordStore rs = RecordStore.openRecordStore(
"SpeedTestScore",false);
if ( rs != null && rs.getNumRecords() > 0){
byte b[] = rs.getRecord(1); //读取第一条记录
m_nHighScore = 0;
//用一个循环,将4个byte转换成一个int型数据,
//注意java中byte类型数据有符号
if( b != null && b.length == 4 ){
for (int i = 0; i < 3; i++){
//如果b[i]小于0,则将b[i]转换成相应的正数
if( b[i] < 0 )
m_nHighScore += ( b[i] + 256 );
else
m_nHighScore += b[i];
m_nHighScore *= 256;
}
m_nHighScore += b[3];
if( b[3] < 0 )
m_nHighScore += 256;
}
}
rs.closeRecordStore();
}
catch (Exception ex){
ex.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -