Editor de mapas de mosaicos
Un mapa de mosaicos es un nivel: una cuadrícula de celdas pintadas con los mosaicos de una de tus imágenes, con etiquetas que lee tu código y objetos colocados en él, el inicio del héroe, monedas, cofres. Se abre en el editor de mapas de mosaicos, en iPad y en Mac.
Abrir el editor de mapas de mosaicos
Elige un .tilemap en Archivos: se abre directamente en el editor. Para crear uno, elige Archivo › Nuevo asset… y luego Mapa de mosaicos (consulta Proyectos y assets).
La barra nombra el mapa e indica su tamaño, el de sus mosaicos y el zoom. Mosaicos | Objetos elige la capa que editas (L). Cuadrícula muestra las líneas de las celdas, y Ajustes del mapa vincula el conjunto de mosaicos, cambia el tamaño del mapa y fija el tamaño de celda.
Pintar mosaicos
En la capa Mosaicos, la columna lateral muestra el conjunto de mosaicos: haz clic en un mosaico para tomarlo, o arrastra sobre varios para tomar un sello. Las herramientas recorren el borde del lienzo, cada una con su tecla:
- Lápiz (B) — pinta el mosaico o el sello elegido
- Borrador (E) — vacía celdas
- Relleno (G) — rellena las celdas conectadas del mismo mosaico
- Rectángulo (U) — rellena un rectángulo
- Cuentagotas (I) — el mosaico de debajo pasa a ser el que pintas
- Seleccionar (M) — selecciona celdas para moverlas, cortarlas, copiarlas o pegarlas
Pintar etiquetas (T) pinta la etiqueta elegida bajo el conjunto de mosaicos en lugar de mosaicos, y Mostrar etiquetas las muestra sobre el mapa. El código lee la etiqueta de una celda con map.hit(…): la etiqueta 2 para los muros, por ejemplo (consulta Colisión).
La capa Objetos
Los objetos son nombres sobre celdas: dónde empieza el héroe, una fila de monedas, un cofre. Elige Objetos en la barra (L) para colocarlos. La columna lateral pasa a ser la paleta de objetos: cada sprite del proyecto, dibujado con su primer fotograma y con su nombre. El nombre de un objeto es el de su sprite, y es lo que lee tu código.
- Colocar (B) — pone en la celda el sprite elegido en la paleta. Arrastra para poner uno en cada celda que cruces. Una celda contiene un objeto: colocar en una celda ocupada lo reemplaza.
- Quitar (E) — quita el objeto de debajo; arrastra para quitar cada uno que cruces.
- Tomar (I) — el nombre del objeto pasa a ser el que colocas.
- Seleccionar (M) — haz clic en un objeto para seleccionarlo, ⇧-clic para añadir uno, o arrastra desde una celda vacía para seleccionar los objetos de un rectángulo. Arrastra un objeto seleccionado para moverlo; varios conservan su separación. Las flechas mueven una selección una celda.
Un objeto nunca cae sobre otro: un movimiento a una celda ocupada se rechaza, el objeto vuelve y el editor dice qué contiene la celda. Mantén ⌥ para intercambiarlos. Eliminar, Cortar, Copiar y Pegar actúan sobre los objetos (un grupo pegado sigue al puntero hasta que haces clic). Mostrar nombres (N) muestra todos los nombres; si no, un nombre aparece cuando seleccionas o señalas su objeto. Relleno, Rectángulo y Pintar etiquetas aparecen atenuados en la capa Objetos.
En la capa Mosaicos, los objetos siguen en el mapa al 40 %, y un clic pinta el mosaico bajo un objeto, nunca el objeto.
En este mapa cuenta los objetos de cada nombre; haz clic en un nombre para seleccionarlos todos. Un clic derecho en el mapa abre el menú de la capa.
Tipos
Nuevo tipo…, en la paleta, da nombre propio a un fotograma de un sprite: un guard dibujado con el segundo fotograma del sprite del slime, junto al slime. Un tipo se guarda con el mapa y aparece en la paleta tras los sprites.
Renombrar un sprite en Archivos pregunta ¿Renombrar también sus 3 objetos? cuando hay objetos de los mapas del proyecto dibujados con él: Renombrar objetos los renombra en cada mapa, con los tipos dibujados con él, y un solo Deshacer devuelve juntos el nuevo nombre y los objetos; Mantener sus nombres los deja. Un objeto cuyo sprite se eliminó, o se renombró sin él, conserva su nombre, dibujado con línea discontinua hasta que un sprite o un tipo vuelva a llamarse así.
En iPad
Un toque coloca un objeto donde se levanta el dedo. Con Seleccionar, arrastra un objeto para moverlo; con cualquier herramienta, una pulsación larga levanta un objeto para moverlo, o muestra su menú si sueltas sin moverlo. La cápsula de edición sobre el mapa tiene Eliminar en la capa Objetos. Dos dedos desplazan y hacen zoom, y nunca colocan nada.
En el código
map.things() enumera los objetos como (name, row, column):
level = world.spawn(map=GridMap(tilemap="level"))
for name, row, column in level.map.things():
if name == "coin":
place_coin(row, column) # la función de tu juego
Consulta GridMap para el formato y el resto de funciones del mapa.
Usado en el código, en la barra del panel, lista las líneas de tus scripts que nombran este mapa; elige una para ir a ella. En el código, Cmd+clic en el nombre del mapa te trae de vuelta aquí.
Deshacer y rehacer
Cada cambio es un paso de Deshacer (Cmd+Z): un trazo de mosaicos, un arrastre que coloca una fila de monedas, el movimiento de varios objetos.