一、关于如何制作瓦片底图:http://www.skywind.me/blog/archives/427
二、ts中TiledMap类
/**
*
* @author
*
*/
'use strict';
module gtm{
export class TiledMap {
/**网格线 图层*/
public lineScene: egret.Sprite = new egret.Sprite();
/**障碍点 图层*/
public pointScene: egret.Sprite = new egret.Sprite();
public static PATH_UNKNOWN: number = -1; //未知数据
public static PATH_PASS: number = 0; // 路径中 0 为可以通过
public static PATH_BARRIER: number = 1; // 路径中 1 为障碍
public static PATH_TRANSLUCENCE: number = 2; // 路径中 2 为半透明
public TILE_WIDTH: number = 0; // A*格子宽
public TILE_HEIGHT: number = 0; // A*格子高
public MAP_WITDTH: number = 0; // 地图的宽
public MAP_HEIGHT: number = 0; // 地图的高
public MAP_X: number = 0; // X坐标最大
public MAP_Y: number = 0; // Y坐标最大
/**
* 得到的地图数据是从0开始的
* */
public data: Array<any>; //地图数据
/**
* object层的数据
* */
public objectData:any;
/**
* 清空地图数据
* */
public dispose() {
this.TILE_WIDTH = 0;
this.TILE_HEIGHT = 0;
this.MAP_WITDTH = 0;
this.MAP_HEIGHT = 0;
this.data = null;
}
/**
* 判断A*地图从标是否可以通过的路 true 为可以通过
*/
public isPass(checkX: number,checkY: number): boolean {
try{
var mapWidth: number = this.MAP_X;
var mapHeight: number = this.MAP_Y;
if(checkX < 0 || checkX >= mapWidth || checkY < 0 || checkY >= mapHeight) {
return false;
}
return this.data[checkY][checkX] != gtm.TiledMap.PATH_BARRIER ? true : false;