He estado investigando sobre la forma de hacer un juego "Tile based" y he encontrado impresionantes tutoriales en la web. Sin embargo, me queda la duda de cuál forma es la más adecuada para hacer esto desde el punto de vista de cargar los "mapas" desde archivos externos. Las dos opciones son: desde un archivo .txt o desde un archivo XML. Por ahora lo que veo más simple de entender visualmente es el archivo de texto porque no hay que poner tanta cosa al archivo. Pero no estoy seguro que sea lo mejor. Aquí les muestro lo que he hecho
Declaración de Variables:
Código :
var miMap:Array = new Array(); var mapObj:LoadVars = new LoadVars(); var Alto:Number = 40; var Ancho:Number = 40; var numCol:Number; var numFil:Number;
Función que se invoca al cargar la info del archivo de texto y crea un arreglo multidimencional:
Código :
mapObj.onLoad = function() {
//utilizo carrier return para separar las filas
var miMap_L = this.m.split("\r\n");
//determino la cantidad de columnas
numFil = miMap_L.length;
//formo un arreglo multidimencional "numCol x numFil"
for (i=0; i<numFil; i++) {
var columna = miMap_L[i].split(",");
miMap[i] = columna;
}
//determino la cantidad de filas
numCol = miMap[0].length;
//Llamo a la función que presenta los tiles
HacerMapa(miMap);
};Función que presenta los tiles
Código :
function HacerMapa(mapa) {
// loop para recorrer las filas
for (var i:Number = 0; i<numFil; i++) {
//loop para recorrer las columnas
for (var j:Number = 0; j<numCol; j++) {
//se extrae el valor que determina el tile
figura = mapa[i][j];
//se presenta el tile respectivo. En este ejemplo sólo tengo B0 y B1
this.attachMovie("B"+figura, "B"+i+"_"+j, this.getNextHighestDepth());
//se coloca en la pantalla en la posición X correcta el tile
this["B"+i+"_"+j]._x = j*Ancho;
//se coloca en la pantalla en la posición Y correcta el tile
this["B"+i+"_"+j]._y = i*Ancho;
}
}
}Cargo el archivo
Código :
mapObj.load("\\Mapas\\A1.txt");Este es uno de los archivos de texto
Código :
m=1,1,1,1,1,1,1 1,0,0,0,0,0,1 1,0,0,0,0,0,1 1,0,0,0,0,0,1 1,0,0,0,0,0,1 1,1,1,1,1,1,1
Me gustaría saber si voy en la dirección correcta o si debo corregir mi estrategia. Cómo puedo mejorar, simplificar lo anterior.
Su ayuda se las voy a agradecer
Saludos
