CodeForge

Maquetación Web Dinámica / Del canvas al motor: videojuegos con Phaser

Tilemaps: niveles hechos de piezas

Teoría20 min20 XP

Los niveles de Mario, Zelda o Celeste no se dibujan pieza por pieza a mano: se arman con TILES — bloques cuadrados que se repiten en una cuadrícula, como baldosas. Un nivel entero cabe en una tabla de números. Esta lección te enseña a pensar en tiles, a construir un nivel jugable desde una cuadrícula de datos, y el flujo profesional con el editor Tiled.

Un nivel es una hoja de cálculo

Un nivel jugable desde una cuadrícula

Aquí un nivel completo definido con TEXTO (cada carácter es una casilla) y convertido en un mundo físico jugable — bloques sólidos y monedas, todo generado por un bucle:

Edita la tabla NIVEL — agrega una x, mueve una o — y el mundo cambia al instante. Ese es el poder de los tilemaps: el nivel es DATOS, separados del código que los dibuja.

El flujo profesional: Tiled

Para niveles grandes no escribes la tabla a mano: la DIBUJAS en un editor visual. El estándar gratuito es Tiled (mapeditor.org): pintas el nivel con el mouse como en Paint, y exporta un JSON que Phaser carga directo:

tiled.js
function preload() {
this.load.image("tiles", "tileset.png");           // la hoja de piezas
this.load.tilemapTiledJSON("mapa", "nivel1.json"); // el plano exportado de Tiled
}
function create() {
const map = this.make.tilemap({ key: "mapa" });
const tileset = map.addTilesetImage("mi-tileset", "tiles");
const capa = map.createLayer("Suelo", tileset, 0, 0);
capa.setCollisionByProperty({ colisiona: true });   // qué tiles frenan
this.physics.add.collider(this.jugador, capa);       // el jugador se para en ellos
}

Nota honesta: Tiled es un programa aparte que instalas en tu computador, y este flujo necesita archivos reales (el PNG del tileset y el JSON) — por eso el playground de arriba usa la versión de tabla en texto, que enseña el MISMO concepto sin salir del navegador. Cuando hagas un juego grande, Tiled es la herramienta; la idea de "el nivel es una cuadrícula de piezas" es idéntica.

¿Cuál es la ventaja central de representar un nivel como un tilemap (cuadrícula de datos) en vez de colocar cada bloque manualmente en el código?

Mini-reto

Diseña tu propio nivel editando la tabla NIVEL: crea una "escalera" de bloques que suba de izquierda a derecha, con monedas premiando cada salto difícil, y un hueco que obligue a saltar con precisión. Pruébalo. Acabas de hacer diseño de niveles — y notaste que el buen diseño (dónde va el hueco, dónde la recompensa) es tan importante como el código.

Qué sigue

Tu mundo funciona, pero se siente plano. La próxima lección le añade el "JUICE": sonido, partículas al recoger, y el temblor de pantalla que hace que un golpe se SIENTA. Los detalles que separan un juego que funciona de uno que da gusto jugar.