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

📄 simplelayermanager.java

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

import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.lcdui.game.TiledLayer;
import cn.org.matrix.gmatrix.gameLab.elements.biology.Actor;
import cn.org.matrix.gmatrix.gameLab.elements.biology.NPC;

/**
 * 图层管理器:负责构造地图
 * @author cleverpig
 *
 */
public class SimpleLayerManager extends LayerManager{
	public SimpleLayerManager(){
		super();
	}
	
	/**
	 * 构造地图
	 * @param level 关卡对象
	 * @param actor 主角对象
	 * @param mapID 将要构造的地图ID
	 * @return 构造后的地图对象
	 */
	public SimpleMap constructMap(
			SimpleLevel level,
			Actor actor,
			String mapID){
		SimpleMap map=level.findMap(mapID);
		if (map==null){
			System.out.println("构造地图失败,原因是没有找到匹配mapID的地图对象");
		}
		//先装载NPC和Actor,否则它们将被后面的图层盖住
		Object[] npcSet=map.getNpcSet().list();
		for(int i=0;i<npcSet.length;i++){
			NPC npc=(NPC)npcSet[i];
			this.append(npc.getAnimator());
		}
		System.out.println("装载NPC完毕!");
		
		this.append(actor.getAnimator());
		System.out.println("装载Actor完毕!");
		
		Object[] layerSet=map.getLayerSet().list();
		//根据SimpleLayer装载tiledLayer
		for(int i=0;i<layerSet.length;i++){
			Image img=null;
			SimpleLayer simpleLayer=(SimpleLayer)layerSet[i];
			try{
				img=Image.createImage(simpleLayer.getImgURL());
				//建立TiledLayer
				TiledLayer layer=new TiledLayer(simpleLayer.getTileCols(),simpleLayer.getTileRows(),
						img,simpleLayer.getTileWidth(),simpleLayer.getTileHeight());
				//获得图层数组
				int[] mapData=simpleLayer.getMapData();
				//按照数组元素设置此图层的单元格
				for(int j=0;j<mapData.length;j++){
					int columnNum=j%simpleLayer.getTileCols();
					int rowNum=(j-columnNum)/simpleLayer.getTileCols();
					layer.setCell(columnNum,rowNum,mapData[j]);
				}
				
				simpleLayer.setLayer(layer);
				this.append(layer);
			}
			catch(Exception ex){
				ex.printStackTrace();
			}
		}	
		System.out.println("装载图层完毕!");
		
		Object[] transformer=map.getMapLink().list();
		for(int i=0;i<transformer.length;i++){
			MapTransformer trans=(MapTransformer)transformer[i];
			this.append(trans.getSprite());
		}
		System.out.println("装载地图转换器完毕!");
		return map;
	}
}

⌨️ 快捷键说明

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