CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Java] Besoin d'aide pour centrer ma map

Pseudo supprimé
Pseudo supprimé 15 avril 2021 à 12:34:03

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 :
https://image.noelshack.com/fichiers/2021/15/4/1618482558-tuiles1.png

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 ! :hap:

Message édité le 15 avril 2021 à 12:35:22 par Pseudo supprimé
godrik
godrik
Niveau 30
15 avril 2021 à 14:44:33

Inconnu = tailledelafenetre/2-tailledelacarte/2

Pseudo supprimé
Pseudo supprimé 15 avril 2021 à 17:23:31

Le 15 avril 2021 à 14:44:33 :
Inconnu = tailledelafenetre/2-tailledelacarte/2

Parfait c'est exactement ça merci beaucoup je peux poursuivre la création de mon jeu ! :ange:

godrik
godrik
Niveau 30
15 avril 2021 à 17:38:06

Pas de soucis. Note que c'est un probleme simple de translation du centre de l'image au centre de l'ecran. https://www.maxicours.com/se/cours/vecteurs-et-translations/

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment