Un fichier MAR (MAp Array) est un tableau 1d exporté du soft http://www.tilemap.co.uk/mappy.php.
Dans un MAR le tile est codé sur 2 octets (poids fort PF et poids faible Pf).
Pour 1 layer celui de PF evolue de 32 en 32 (0,32,64,96,128...224) par incrementation du numero de tile appliqué.
Quand le PF retourne a 0 alors le Pf est incrémenté de 1.
Ca donne:
-tile 0 = 0x 00 00
-tile 1 = 0x 20 00
-tile 2 = 0x 40 00
-tile 3 = 0x 60 00
-tile 4 = 0x 80 00
-tile 5 = 0x A0 00
-tile 6 = 0x C0 00
-tile 7 = 0x E0 00
-tile 8 = 0x 00 01
-tile 9 = 0x 20 01
-etc...
et donc le code suivant pour remettre tout dans un ordre croissant pour un tableau 2d :
i=0;
for (y=0;y<hauteur;++y)
for (x=0;x<largeur;++x){
tmp_level[y][x]=(tmp_mar[i]/32)+(tmp_mar[i+1]*8);
i+=2;
}
// tmp_level = tableau du niveau convertis en 2d
// tmp_mar = fichier *.MAR chargé en memoire (tableau 1d)
A+