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

📄 gamedata.java

📁 游戏的故事 一款适合学习用的RPG游戏 WTK运行,内有截图
💻 JAVA
字号:
import java.util.Vector;
import java.util.Random;
import java.io.IOException;
import javax.microedition.rms.RecordStoreNotFoundException;
import javax.microedition.rms.RecordStore;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.DataInputStream;
import java.io.ByteArrayInputStream;
import javax.microedition.rms.RecordStoreException;

public class GameData {
	public final static int nFlagCount=128;
	public final static int nMonsterCount=30;
	
	public boolean flags[];
	
	public String curMap;
	
	public int playerX;
	public int playerY;
	public int HP;
	public int EXP;
	public int LV;
	public int AGI;
	public int ATK;
	public int DEF;
	public int MaxHP;
	public int expNext;
	
	public int item[];
	public boolean monsters[];
		
	public int money;
	
	public boolean sound;
	
	public Vector enemy;
	
	public GameData() {
		flags=new boolean[nFlagCount];
		monsters=new boolean[nMonsterCount];
		enemy=new Vector();
		item=new int[3];
	}
	public void newGame(){
		curMap="/res/main";
		for(int i=0;i<nFlagCount;i++){
			flags[i]=false;
		}
		for(int i=0;i<nMonsterCount;i++){
			monsters[i]=false;
		}
		playerX=6;	playerY=11;
		HP=50;
		EXP=13;
		LV=0;
		AGI=20;
		MaxHP=65;
		ATK=12;
		DEF=7;
		expNext=nextLv();
		item[0]=2;
		money=50;
	}
	public int nextLv(){
		int e=30;
		for(int i=1;i<LV+1;i++){
			e=e*3/2;
		}
		return e;
	}
	public boolean checkUP(){
		Random rnd=new Random(System.currentTimeMillis());
		while(EXP>=expNext){
			LV++;
			expNext=nextLv();
			ATK+=Math.abs(rnd.nextInt()%5);
			DEF+=Math.abs(rnd.nextInt()%4);
			AGI+=Math.abs(rnd.nextInt()%5);
			return true;
		}
		return false;
	}
	public boolean saveData(){
		RecordStore rs=null;
		int i;
		try{
			rs=RecordStore.openRecordStore("GameData",true);
			ByteArrayOutputStream baos=new ByteArrayOutputStream();
			DataOutputStream dos=new DataOutputStream(baos);
			for(i=0;i<nFlagCount;i++){
				dos.writeBoolean(flags[i]);
			}
			dos.writeUTF(curMap);
			dos.writeInt(playerX);
			dos.writeInt(playerY);
			dos.writeInt(HP);
			dos.writeInt(EXP);
			dos.writeInt(LV);
			dos.writeInt(AGI);
			dos.writeInt(ATK);
			dos.writeInt(DEF);
			dos.writeInt(MaxHP);
			dos.writeInt(expNext);
			
			for(i=0;i<3;i++) dos.writeInt(item[i]);
			for(i=0;i<nMonsterCount;i++) dos.writeBoolean(monsters[i]);
			dos.writeInt(money);
			dos.writeBoolean(sound);
			dos.writeInt(enemy.size());
			for(i=0;i<enemy.size();i++)
				dos.writeInt(((Integer)enemy.elementAt(i)).intValue());
			if(rs.getNextRecordID()>1) rs.setRecord(1,baos.toByteArray(),0,baos.size());
			else rs.addRecord(baos.toByteArray(),0,baos.size());
			rs.closeRecordStore();
			return true;
		}catch(RecordStoreException rse){
//			System.out.println (rse.getMessage());
			return false;
		}catch(IOException ioe){
			return false;
		}
	}
	
	public static GameData loadData(){
//		System.out.println ("Loading rms data");
		RecordStore rs=null;
		int i;
		GameData gd=new GameData();
		try{
			rs=RecordStore.openRecordStore("GameData",false);
			byte[] data=rs.getRecord(1);
			ByteArrayInputStream bais=new ByteArrayInputStream(data);
			DataInputStream dis=new DataInputStream(bais);
			for(i=0;i<nFlagCount;i++)
				gd.flags[i]=dis.readBoolean();
			gd.curMap=dis.readUTF();
			gd.playerX=dis.readInt();
			gd.playerY=dis.readInt();
			gd.HP=dis.readInt();
			gd.EXP=dis.readInt();
			gd.LV=dis.readInt();
			gd.AGI=dis.readInt();
			gd.ATK=dis.readInt();
			gd.DEF=dis.readInt();
			gd.MaxHP=dis.readInt();
			gd.expNext=dis.readInt();
			
			for(i=0;i<3;i++) gd.item[i]=dis.readInt();
			for(i=0;i<nMonsterCount;i++) gd.monsters[i]=dis.readBoolean();
			gd.money=dis.readInt();
			gd.sound=dis.readBoolean();
			int j=dis.readInt();
			for(i=0;i<j;i++)
				gd.enemy.addElement(new Integer(dis.readInt()));
			rs.closeRecordStore();
			return gd;
		}catch(RecordStoreNotFoundException rsnfe){
//			System.out.println ("not found"+rsnfe.getMessage());
			return null;
		}catch(RecordStoreException rse){
//			System.out.println ("rs"+rse.getMessage());
			return null;
//		}catch(IOException ioe){
//			System.out.println ("io"+ioe.getMessage());
//			return null;
		}catch(Exception e){
//			System.out.println ("abd"+e.getMessage());
			return null;
		}
	}
}

⌨️ 快捷键说明

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