Salut,
Je crée un jeu en Java, je bloque sur un problème tout simple. En fait j'aimerais connaitre la formule pour centrer ma map sur l'écran.
J'ai l'écran de la fenêtre qui fait 800x600, mes tuiles font 32x32. J'ai cette template pour dessiner ma map :
public int[][] a = {
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
};
(L'idée de mon jeu c'est de créer manuellement des templates, ensuite d'obtenir une template aléatoire et de la dessiner, c'est pourquoi la template sera amené à changer)
Chaque 0 correspond à une tuile qui fait 32x32. Pour calculer la position des tuiles afin d'obtenir un carrée homogène j'utilise cette fonction :
for (int i = 0; i < template.length; i++) {
for (int j = 0; j < template[i].length; j++) {
int x = 32 * j;
int y = 32 * i;
Sprite sprite = new Sprite("src/assets/floor_normal.png");
Board.addSprite(sprite);
}
}
Ce qui me donne sur la fenêtre :

Mon carrée est parfait mais j'aimerais que toutes les tuiles soient centrées, et que le code s'adapte peu importe la template, la map sera toujours centrée.
Donc dans la boucle for il faudra calculer la position idéal:
int x = 32 * j + Inconnu?;
int y = 32 * i + Inconnu ?;
Et c'est là que je bloque, si quelqu'un à une astuce je prend ! 