• Lunes 23 de Diciembre de 2024, 05:11

Autor Tema:  Formato De Archivo De Mapas  (Leído 1900 veces)

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Formato De Archivo De Mapas
« en: Lunes 18 de Septiembre de 2006, 18:49 »
0
Mmmmm... no sé si alguno que ya ha hecho algún proyecto ande por aquí y me pudiera ayudar a encontrar la solución a 2 cosas.

¿Como podría guardar un mapa? es decir, por ejemplo tengo un mapa con el siguiente formato:

Código: Text
  1.  
  2. 1111111111111111111
  3. 1000000000000000001
  4. 1000000000000000001
  5. 1000000000000000001
  6. 1000000000000000001
  7. 1111111111111111111
  8.  
  9.  

¿Como se que mapa sigue y cual va antes? (suponiendo que sea side scroller o top view no se).

Y la segund pregunta es, ¿usaron algún tipo de scripting para los diálogos y todas esas cosas que ocurren en sus juegos?
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Formato De Archivo De Mapas
« Respuesta #1 en: Lunes 18 de Septiembre de 2006, 23:55 »
0
mapa 1
Citar
111111
100001
100003
111111
mapa 2
Citar
111111
100001
400001
111111

Aquií el elementro 3 representa una puerta.
Código: Text
  1.  
  2. class Puerta
  3. {
  4.    int MapaSiguiente;
  5.    Point UbicacionInicialMapaSiguiente
  6. }
  7.  
  8.  

Código: Text
  1.  
  2. Puerta3.MapaSiguiente =  Mapa2;
  3. Puerta3.UbicacionInicialMapaSiguiente = (1, 3); //el cero cuenta
  4.  
  5. Puerta4.Mapasiguiente = Mapa1;
  6. Puerta4.UbicacionInicialMapasiguiente = (4,3);
  7.  
  8.  

Mejor informacion en>
http://www.tonypa.pri.ee/tbw/tut06.html

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Formato De Archivo De Mapas
« Respuesta #2 en: Martes 19 de Septiembre de 2006, 00:38 »
0
Cita de: "ibito"
Y la segund pregunta es, ¿usaron algún tipo de scripting para los diálogos y todas esas cosas que ocurren en sus juegos?
- Antes hioce una rutina que leia los dialogos de un archvio de texto y hacia un pequeño parse sobre eso.
- Pero ultimamente he experimentado con scripting, particularmente IRonPhyton y LUA.NET ( aunque este ultimo no lo pude usar por no soportar aun framework 2.0)
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Formato De Archivo De Mapas
« Respuesta #3 en: Miércoles 20 de Septiembre de 2006, 22:18 »
0
Una forma es tener varias capas en tu mapa, cada capa puede ser básicamente de dos tipos:

1. Cada casilla contiene directamente la información del mapa:
Cada número indica características del mapa. Puedes tener una enumeracion o banderas de estado para describir cada posición. Esto sólo es recomendable para detalles muy abundantes en tu mapa y que ocupan muy poco espacio en memoria, generalmente no más de 4 bytes aprovechando al máximo cada bit.

2. Cada casilla sólo contiene un indice a una lista de objetos:
Cada número es un indice a una tabla de objetos, al acceder a cada objeto podrías obtener su tipo y a partir de ello saber como manejarlo. Esto es más adecuado para detalles no tan frecuentes en el mapa y que además cuya información ocupa una cantidad razonable de memoria. Esta es una buena forma de economizar memoria, por ejemplo puedes utilizar solo 2 bytes para el indice de la tabla de objetos y tener más de 60000 objetos por mapa lo que es más que suficiente para un mapa de un tamaño razonable. Al final de tu archivo de mapa tendrías que guardar la información de cada objeto, indicando el número de objetos, luego (por objeto) cuanto espacio ocupa la información del objeto en cuestión.

3. Sin casillas, acceso directo a la lista de objetos:
Otra forma es prescindir de la tabla de indices y trabajar directamente con la lista de objetos que conforman tu mapa. Es mucho más económico en memoria para mapas muy grandes que no son muy densos en detalles. La desventaja es perder el acceso directo a cada objeto simplemente conociendo su posición. Al momento de desplegar en pantalla estos mapas o al trabajar la lógica del juego tendrás que recorrer esa lista de objetos muy a menudo con mucho impacto en rendimiento en tiempo de CPU, asi que es prácticamente necesario tener la lista de objetos del mapa en una estructura de datos a manera de tabla hash bidimensional. Lo que sería a la vez una optimización del caso 2 que sólo permite un objeto por "casilla". En este caso tendrías una lista de objetos por cada casilla y el numero de casillas debería ser mucho menor para economizar memoria. De todos modos la clave es saber cuanta memoria puedes sacrificar para reducir el consumo de tiempo de CPU.