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

📄 rmsscore.java

📁 J2ME手机游戏50例
💻 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 + -