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

📄 map.java

📁 Java程序的一个游戏小Demo 里面包括了许多工具类 用起来很方便
💻 JAVA
字号:
package map;

import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import tools.Tools;
import src.MyCanvas;

public class Map implements Mapinter {
	public final int DOWN_MAP = 0;

	public final int UP_MAP = 1;

	int[][] mapArrayD;// 底层数组

	int[][] mapArrayU;// 覆盖层数组

	int[][] mapArrayP;// 碰撞层数组

	Image img_mapArray[];

	private int FramW, FramH;

	static public int mapX, mapY;

	private int mapW, mapH;// 地图宽高

	public Map(String mapName, int array[][], int array1[][], int array2[][],
			int frmW, int framH) {
		FramW = frmW;
		FramH = framH;
		mapInit(mapName, array, array1, array2);

	}

	/**
	 * 根据一个地图坐标计算地图的显示坐标
	 * 
	 * @param x
	 * @param y
	 */
	public void setXY(int x, int y) {

		mapX = (MyCanvas.canvasW >> 1) - x;
		mapY = (MyCanvas.canvasH >> 1) - y;

		if (mapX > 0) {
			mapX = 0;
		}
		if (mapY > 0) {
			mapY = 0;
		}

		if (mapX < MyCanvas.canvasW - mapW) {
			mapX = MyCanvas.canvasW - mapW;
		}
		if (mapY < MyCanvas.canvasH - mapH) {
			mapY = MyCanvas.canvasH - mapH;
		}
	}

	public void mapInit(String mapName, int array[][], int array1[][],
			int array2[][]) {
		img_mapArray = Tools
				.getImageArry(Tools.getImage(mapName), FramW, FramH);
		mapArrayD = array;
		mapArrayU = array1;
		mapArrayP = array2;
		mapW = mapArrayD[0].length * FramW;
		mapH = mapArrayD.length * FramH;
//		for (int i = 0; i < 1000; i++) {
//			System.out.println("_______________________");
//		}
	}

	/**
	 * 绘制地图
	 * 
	 * @param g
	 */
	public void showMap(Graphics g, int showType) {

		for (int i = 0; i < mapArrayD.length; i++) {
			for (int j = 0; j < mapArrayD[i].length; j++) {
				if (mapX + j * FramW > -FramW
						&& mapX + j * FramW < MyCanvas.canvasW
						&& mapY + i * FramH > -FramH
						&& mapY + i * FramH < MyCanvas.canvasH) {
					switch (showType) {
					case DOWN_MAP:
						if (mapArrayD[i][j] - 1 >= 0) {
							g.drawImage(img_mapArray[mapArrayD[i][j] - 1], mapX
									+ j * FramW, mapY + i * FramH, 20);
						}
						break;
					case UP_MAP:
						if (mapArrayU[i][j] - 1 >= 0) {
							g.drawImage(img_mapArray[mapArrayU[i][j] - 1], mapX
									+ j * FramW, mapY + i * FramH, 20);
						}
						break;
					}
				}
			}
		}
	}

	public int getMapData(int x, int y) {
		if (y / FramH >= 0 && y / FramH < mapArrayP.length && x / FramW >= 0
				&& x / FramW < mapArrayP[0].length) {
			return mapArrayP[y / FramW][x / FramH];
		}
		return -1;
	}

}

⌨️ 快捷键说明

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