Le format grille¶
Une carte sort de l'atelier, et y entre, en deux fichiers : une planche de tuiles, <nom>_<T>.png, et un texte, <nom>.txt, qui pose ses tuiles. Le format est assez simple pour s'écrire à la main, par un script, ou par un générateur d'images et un modèle de langage travaillant ensemble : générer des tuiles de 16 × 16, puis une carte qui les emploie.
Un exemple¶
papydeck grille 1
# une forêt, deux calques (un commentaire : # suivi d'un espace)
tuile 16 # le côté d'une tuile de la planche : 8, 16, 24 ou 32
taille 40 30 # la carte, en tuiles de ce côté
planche foret_16.png # la planche, nommée d'après son côté
solides 1-12 20 21 # les tuiles solides de la planche
grimpables 7 9 # les tuiles grimpables (échelles)
plateformes 3 4 # les tuiles plateformes (on s'y pose, on les traverse par le bas) ; une étiquette par tuile
calque fond # un calque, du bas vers le haut, 8 au plus
0 0 5 6 6 7 0 0 … # 40 nombres par rangée, 30 rangées
…
calque devant
0 0 0 0 32h 0 …
…
collision # facultatif
#.......................................
…
La planche¶
Un PNG dont le nom finit par _8, _16, _24 ou _32 : le côté T de ses tuiles, en pixels. Ses tuiles se numérotent à partir de 1, dans le sens de lecture, de gauche à droite puis de haut en bas, tuiles vides comprises. Les pixels transparents sont des trous (le fond de la console n'a pas de demi-transparence : un pixel y est ou n'y est pas).
Le texte¶
La première ligne est papydeck grille 1. Puis, dans n'importe quel ordre, avant le premier calque :
| Ligne | |
|---|---|
tuile T |
le côté d'une tuile de la planche : 8, 16, 24 ou 32 |
taille L H |
la carte, en tuiles de ce côté. En cases de 8 (L × T/8 sur H × T/8), une carte tient de 80 × 60 à 256 × 128 |
planche <nom>_<T>.png |
la planche à laquelle les nombres renvoient |
solides … |
facultatif : les tuiles solides, en numéros et en plages (1-12 20 21) |
grimpables … |
facultatif : les tuiles grimpables (barreaux d'échelle), même syntaxe |
plateformes … |
facultatif : les tuiles plateformes (la face du haut seule), même syntaxe ; une tuile est dans une ligne au plus |
Puis chaque calque : calque <nom> (minuscules, chiffres, _), suivi de H rangées de L nombres séparés par des espaces. 0 est vide ; 5 est la 5e tuile de la planche ; 5h, 5v, 5hv la posent retournée horizontalement, verticalement, ou les deux (gratuit sur la console). Le premier calque est en bas.
Enfin, facultatif, collision : les cases où l'on marche, avec les signes du .mask de la console — # solide, = plateforme (la face du haut seule), H grimpable (une échelle), a..o des faces quelconques (` + valeur : haut 1, bas 2, gauche 4, droite 8 ; e = haut + gauche) et . libre, sans espace. Soit une ligne par tuile (H lignes de L caractères), soit une ligne par case de 8 (H × T/8 lignes) : le nombre de lignes dit laquelle. Sans section collision, la collision vient des tuiles étiquetées : chaque case où une tuile solide est posée, sur n'importe quel calque, est solide ; sinon, là où une tuile grimpable est posée, grimpable ; sinon, là où une tuile plateforme est posée, une plateforme.
Un # suivi d'un espace ouvre un commentaire, jusqu'à la fin de la ligne, sauf sur les lignes de la collision. Chaque erreur est refusée avec sa ligne et, quand c'est une case, sa colonne : line 41, column 4: “3z”: a tile number, 0 for none, with h, v or hv for a mirror.
Importer¶
Une carte neuve depuis une grille : Library, Maps, +, Or from a grid. Choisissez le texte et sa planche ensemble ; la fiche résume la grille (taille, calques, collision), demande le nom de la carte et d'où vient la planche, et Create the map from the grid la crée, la remplit et l'enregistre.
Dans une carte ouverte : onglet Tiles, Import grid, les deux fichiers ensemble. L'inspecteur résume la grille et nomme les niveaux posés sur la carte, qui verront le nouveau dessin. Replace remplace les calques et la collision de la carte par ceux de la grille ; la carte doit avoir la même taille. Ses tuiles rejoignent la barre des tuiles, dédupliquées, miroirs compris, avec un tampon par tuile de la planche au-delà de 8. La peinture des terrains part, et les décors posés sur un calque que la grille ne nomme pas aussi. Un seul Ctrl+Z annule le tout.
La planche se découpe en tuiles de base de 8 × 8 dans le budget de la console, 704 : une planche qui le déborderait est refusée entière, avec le compte, et rien n'est écrit. Son origine entre dans les sources de la carte, comme tout import.
Exporter¶
Onglet Tiles : choisissez le côté T, Export grid. Vous obtenez <carte>.txt et <carte>_<T>.png :
- chaque calque est découpé en blocs de T × T ; les blocs distincts forment la planche, 16 par rangée, et un bloc qui est le miroir d'un autre reprend sa tuile avec
h,vouhv; - les décors posés sont aplatis sur leur calque, comme le ferait F ;
- la collision sort par case de 8, avec les cinq signes, masques des décors posés compris (solides) ;
solidesnomme les tuiles de la planche qui contiennent une tuile solide,grimpablescelles qui contiennent une tuile grimpable et aucune solide,plateformescelles qui contiennent une tuile plateforme et aucune des deux autres ;- les terrains ne suivent pas : leurs tuiles oui, leur matière non.
L'export ne refuse qu'une chose : une carte dont la taille n'est pas un multiple de T/8 (une carte de 80 cases de large ne se découpe pas en tuiles de 24). Exporter avec T = 8 marche toujours.