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

📄 gameloader.java

📁 j2me游戏引擎 j2me游戏引擎
💻 JAVA
字号:
package cn.org.matrix.gmatrix.gameLab.engine;

import cn.org.matrix.gmatrix.gameLab.GameObjectQueue;


/**
 * 游戏装载器:负责将关卡(地图、NPC、地图转换器、道具)、主角、摄像机等装入内存
 * @author cleverpig
 *
 */
public class GameLoader {
	//积极加载模式(加载所有的对象)
	public static final int POSITIVE_LOAD_MODEL=1;
	//懒惰加载模式(只加载第一个关卡用到的对象,其它关卡用的对象没有加载时将加载),本版本尚未支持
	public static final int LAZY_LOAD_MODEL=2;
	//关卡列表:每个关卡包含多个地图(每个地图包含多个图层、多个NPC、多个地图转换器)
	private GameObjectQueue globalLevelTable=null;
	//摄像机列表
	private GameObjectQueue globalCameraTable=null;
	//音乐列表
	private GameObjectQueue globalMusicTable=null;
	//主角列表
	private GameObjectQueue globalActorTable=null;
	//用于cache的对象列表-事件列表
	private GameObjectQueue eventTable=null;
	//用于cache的对象列表-消息列表
	private GameObjectQueue msgTable=null;
	//用于cache的对象列表-道具列表
	private GameObjectQueue propertyTable=null;
	//用于cache的对象列表-NPC列表
	private GameObjectQueue npcTable=null;
	//用于cache的对象列表-图层列表
	private GameObjectQueue layerTable=null;
	//用于cache的对象列表-地图转换器列表
	private GameObjectQueue transformerTable=null;
	//用于cache的对象列表-地图列表
	private GameObjectQueue mapTable=null;
	//用于cache的对象列表-关卡列表
	private GameObjectQueue levelTable=null;
	//游乐场运行间隔
	private int carnieRunInterval=10;
	
	//加载模式
	private int type=0;
	
	//由于目前仅支持积极加载模式,所以在构造方法中将type赋值为POSITIVE_LOAD_MODEL
	public GameLoader(){
		type=POSITIVE_LOAD_MODEL;
	}
	/**
	 * 从配置文件使用积极加载模式装载所有游戏对象
	 * @param gameConfigureResURL 游戏配置资源路径
	 */
	public void load(String gameConfigureResURL){
		long startTime=System.currentTimeMillis();
		
		XmlScriptParser x=new XmlScriptParser();
		//打开xml配置文件
		x.openConfigure(gameConfigureResURL);
		
		//装载消息对象
		GameObjectQueue msgTable=x.readMsgConfigure(true);
		System.out.println("msg数量="+msgTable.size());
		
		//装载消息对列,并与消息对象作关联
		GameObjectQueue mqTable=x.readMsgQueueConfigure(new GameObjectQueue[]{msgTable},true);
		System.out.println("msg Queue数量="+mqTable.size());
		
		//装载事件对象配置
		GameObjectQueue eventTable=x.readEventConfigure(true);
		System.out.println("event数量="+eventTable.size());
		
		//装载事件列表,并与事件对象作关联
		GameObjectQueue eqTable=x.readEventQueueConfigure(new GameObjectQueue[]{eventTable},true);
		System.out.println("event Queue数量="+eqTable.size());
		
		//装载道具对象
		GameObjectQueue propTable=x.readPropertyConfigure(true);
		System.out.println("property数量="+propTable.size());
		
		//装载道具箱,并与道具对象作关联
		GameObjectQueue propBoxTable=x.readPropertyBoxConfigure(new GameObjectQueue[]{propTable},true);
		System.out.println("propertyBox数量="+propBoxTable.size());
		
		//装载NPC对象,关联道具箱对象、事件对象
		GameObjectQueue npcTable=x.readNpcConfigure(new GameObjectQueue[]{propTable,eventTable},true);
		System.out.println("npc数量="+npcTable.size());
		
		//装载主角,关联道具箱对象
		GameObjectQueue actorTable=x.readActorConfigure(new GameObjectQueue[]{propTable},true);
		System.out.println("actor数量="+actorTable.size());
		
		//装载图层对象
		GameObjectQueue layerTable=x.readLayerConfigure(true);
		System.out.println("layer数量="+layerTable.size());
		
		//装载地图转换器对象
		GameObjectQueue transformerTable=x.readTransformerConfigure(true);
		System.out.println("transformer数量="+transformerTable.size());
		
		//装载地图对象,关联NPC、图层、地图转换器
		GameObjectQueue mapTable=x.readMapConfigure(new GameObjectQueue[]{layerTable,npcTable,transformerTable},true);
		System.out.println("map数量="+mapTable.size());
		
		//装载关卡对象,并关联地图对象
		GameObjectQueue levelTable=x.readLevelConfigure(new GameObjectQueue[]{mapTable},true);
		System.out.println("level数量="+levelTable.size());
		
		//装载摄像机对象
		GameObjectQueue cameraTable=x.readCameraConfigure(true);
		System.out.println("camera数量="+cameraTable.size());
		
		//装载音乐对象
		GameObjectQueue musicTable=x.readMusicConfigure(true);
		System.out.println("music数量="+musicTable.size());
		
		System.out.println("装载工作花费时间:"+(System.currentTimeMillis()-startTime)+" ms");
		
		this.globalActorTable=actorTable;
		this.globalCameraTable=cameraTable;
		this.globalMusicTable=musicTable;
		this.globalLevelTable=levelTable;
	}

	public GameObjectQueue getGlobalActorTable() {
		return globalActorTable;
	}

	public GameObjectQueue getGlobalCameraTable() {
		return globalCameraTable;
	}

	public GameObjectQueue getGlobalLevelTable() {
		return globalLevelTable;
	}

	public GameObjectQueue getGlobalMusicTable() {
		return globalMusicTable;
	}
	public int getType() {
		return type;
	}
	public void setGlobalActorTable(GameObjectQueue globalActorTable) {
		this.globalActorTable = globalActorTable;
	}
	public void setGlobalCameraTable(GameObjectQueue globalCameraTable) {
		this.globalCameraTable = globalCameraTable;
	}
	public void setGlobalLevelTable(GameObjectQueue globalLevelTable) {
		this.globalLevelTable = globalLevelTable;
	}
	public void setGlobalMusicTable(GameObjectQueue globalMusicTable) {
		this.globalMusicTable = globalMusicTable;
	}
	public GameObjectQueue getEventTable() {
		return eventTable;
	}
	public void setEventTable(GameObjectQueue eventTable) {
		this.eventTable = eventTable;
	}
	public GameObjectQueue getLayerTable() {
		return layerTable;
	}
	public void setLayerTable(GameObjectQueue layerTable) {
		this.layerTable = layerTable;
	}
	public GameObjectQueue getLevelTable() {
		return levelTable;
	}
	public void setLevelTable(GameObjectQueue levelTable) {
		this.levelTable = levelTable;
	}
	public GameObjectQueue getMapTable() {
		return mapTable;
	}
	public void setMapTable(GameObjectQueue mapTable) {
		this.mapTable = mapTable;
	}
	public GameObjectQueue getMsgTable() {
		return msgTable;
	}
	public void setMsgTable(GameObjectQueue msgTable) {
		this.msgTable = msgTable;
	}
	public GameObjectQueue getNpcTable() {
		return npcTable;
	}
	public void setNpcTable(GameObjectQueue npcTable) {
		this.npcTable = npcTable;
	}
	public GameObjectQueue getPropertyTable() {
		return propertyTable;
	}
	public void setPropertyTable(GameObjectQueue propertyTable) {
		this.propertyTable = propertyTable;
	}
	public GameObjectQueue getTransformerTable() {
		return transformerTable;
	}
	public void setTransformerTable(GameObjectQueue transformerTable) {
		this.transformerTable = transformerTable;
	}
	public int getCarnieRunInterval() {
		return carnieRunInterval;
	}
	public void setCarnieRunInterval(int carnieRunInterval) {
		this.carnieRunInterval = carnieRunInterval;
	}

}

⌨️ 快捷键说明

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