Tutorial de ZX Basic + Fourspriter #11: Un mapa
23 febrero, 2012 5 comentarios
Manejar el Mappy ya sabemos (o deberíamos saber), pero antes de ponerse a lo loco hay que pensar varias cosas. Principalmente el tamaño de nuestro mapa en pantallas y el tamaño de cada pantalla en tiles. Esto es importante porque luego echarse atrás y cambiar cosas es un coñazo.
Nosotros para probar vamos a hacer un mapa en el que cada pantalla sea cuadrada, de 12×12 tiles, y todas formen un rectángulo de 6×5 pantallas, en total 30. Esto, a lo basto, ocupará 12x12x6x5 = 4320, 144 bytes por pantalla. Esto es muy comprimible del mil formas, pero por ahora vamos a pasar de estos temas, y vamos a ir poco a poco con un mapa normal sin comprimir ni gaitas.
Pues nada, abrimos mappy, creamos un nuevo mapa con las dimensiones que queramos (para mi ejemplo, de tiles de 16×16 y con 12×6=72 tiles de ancho y 12×5=60 tiles de alto), cargamos nuestro tileset, y nos ponemos manos a la obra con nuestro mapita (no olviden activar las lineas azulicas que te marcan cuando acaba una pantalla con dividers -> enable dividers y definiéndolos en su sitio: 16 * nº tiles; 192 y 192 en nuestro ejemplo). Cuando terminemos lo grabamos como mapa.fmp para conservar y editar y como mapa.map para importarlo. Todo esto lo metemos en una subcarpeta /map de nuestro proyecto.
Para empezar vamos a hacer un mapa de estos de vista cenital, que luego es más fácil programar el motor, y para empezar es más mejor.
Cuando ya esté petón petón, tendremos que convertirlo a código BASIC. Para ello usamos el mapcnv adaptado a ZX Basic que hice para el Suppafoam (del que ya hablaremos en este blog) y que viene muy bien para estas cosas, ya que saca código BASIC del tirón y no hay que andar convirtiendo mierda. Descargadlo de aquí y descomprimidlo en la carpeta /map.
Para usarlo, sólo tendremos que pasarle como parámetros el archivo mapa.map que hemos exportado con Mappy, las dimensiones del mapa en pantallas, las dimensiones de las pantallas en tiles, y si el mapa es packed. Nuestro mapa no será packed, de hecho ni siquiera sabemos qué carajo es eso, así que nos vale con:
mapcnvZXB.exe mapa.map 6 5 12 12
Si todo va bien, tras un misterioso proceso, tendremos un mapa.bas generado. Ese mapa.bas hay que llevárselo a /dev. Y en el próximo capítulo veremos como pintar las pantallas del mapa (aunque es algo bastante trivial).
¿Ya hay un mapa?? :O
Me huelo que este tutorial lo está haciendo uno de los monos esclavo de los mojones…
¡Esto avanza rápido! Aunque ahora habrá parón, que me voy de mini-vacas.
would be awesome if each step could have ready snippets to be tested (for lazy people like me… ;p ) – links from pastebin.com would be awesome! 🙂 – thanks (specially, for this awesome, and missing, tutorial initiative) and cheers! (btw, there in the zxbasic forum i posted something about ulaplus, be welcome using and improving! 🙂 )
When the advance is minimal I tend not to include a download – everything is included in the next chapter. This one, for example: the .MAP and .FMP files are in the next download.
Anyhow, from now on, I think all chapters have their own RAR file 😉
thanks! 🙂