La commande est toute simple :
1
| $dataMap.data[code_position_tile] = code_tile; |
En revanche, trouver code_position_tile et code_tile c'est une autre paire de manches :/
La formule pour code_position_tile c'est ça :
1
| (z * height + y) * width + x |
Mais j'ai pas encore très bien compris à quoi sert une de ces variables.
z c'est pour sélectionner une couche (laquelle de couche, j'en sais rien justement), height et width ce sont la largeur et la hauteur de la map (en nombre de cases), x et y ce sont les coordonnées d'un tile (en nombre de cases).
Sachant qu'avec ma résolution le premier index d'un tile de ce que je suppose être la couche basse la couche qui m'intéresse c'est 480.
Avec x = y = 0, height = 10 et width = 16 chez moi, j'obtiens z = 3 pour cette couche.
En tout cas, dnas le code, les 4 couches utilisées sont 0, 1, 2 et 3. Et la couche 4 pour les ombres.
Faut dire, je teste sur une map panoramisée, ça n'aide pas pour voir les couches.
Edit, après autres tests, ce n'est pas la couche basse. La couche basse c'est tout simplement 0. Du coup je te laisse calculer et tester pour toi-même pour les couches 1, 2 et 3.
Si je veux le remplacer avec un autre tile de la couche D du tileset, je m'aide de ce petit tableau pour trouver code_tile :
Tilemap.TILE_ID_B = 0;
Tilemap.TILE_ID_C = 256;
Tilemap.TILE_ID_D = 512;
Tilemap.TILE_ID_E = 768;
Tilemap.TILE_ID_A5 = 1536;
Tilemap.TILE_ID_A1 = 2048;
Tilemap.TILE_ID_A2 = 2816;
Tilemap.TILE_ID_A3 = 4352;
Tilemap.TILE_ID_A4 = 5888;
Tilemap.TILE_ID_MAX = 8192;
Il donne l'index du tile en haut à gauche du tileset.
Enjoy !
|