Comunidad de diseño web y desarrollo en internet online

Juego Tile Based: XML o .txt?

Citar            
MensajeEscrito el 10 Ago 2006 08:18 pm
Estimados Amigos,

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

Por Costa

16 de clabLevel



 

msie
Citar            
MensajeEscrito el 17 Jun 2008 06:12 am
Hola, encontré ese mensaje porque estoy buscando un código para usar esta línea "archivos = lista_de_jpg.archivos.split("\r\n");" (arma un Array con variables sacadas de un TXT, separadas por "nueva linea") en Linux y en Windows... en los dos sistemas. Te digo esto porque para Windows necesitas "\r\n", pero en Linux no funciona. Y para Linux necesitás "\n" (lo cual en Windows no funciona).


¿Hay algún código que funcione en los dos sistemas?

Por Mario Mey

40 de clabLevel



 

Castelar, Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.