Package view

Class PanneauCarte

All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible

public class PanneauCarte extends JPanel
Classe représentant le panneau graphique affichant la carte du jeu. Cette vue gère l'affichage des cellules du donjon en mode graphique avec images, l'interaction avec la souris et le clavier pour les déplacements et le zoom.
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Identifiant de version pour la sérialisation.
      See Also:
    • controleur

      private final ControleurJeu controleur
      Référence vers le contrôleur pour envoyer les commandes.
    • imgSol

      private final BufferedImage imgSol
      Images utilisées pour représenter les éléments de la carte.
    • imgRoche

      private final BufferedImage imgRoche
      Images utilisées pour représenter les éléments de la carte.
    • imgForet

      private final BufferedImage imgForet
      Images utilisées pour représenter les éléments de la carte.
    • imgEau

      private final BufferedImage imgEau
      Images utilisées pour représenter les éléments de la carte.
    • imgCoffre

      private final BufferedImage imgCoffre
      Images utilisées pour représenter les éléments de la carte.
    • imgJoueur

      private final BufferedImage imgJoueur
      Images utilisées pour représenter les éléments de la carte.
    • imgMonstre

      private final BufferedImage imgMonstre
      Images utilisées pour représenter les éléments de la carte.
    • imgMur

      private final BufferedImage imgMur
      Images utilisées pour représenter les éléments de la carte.
    • lastGrille

      private com.google.gson.JsonArray lastGrille
      Dernière grille JSON reçue du contrôleur.
    • lastTailleCase

      private int lastTailleCase
      Dernière taille de case et position de décalage (centrage)
    • lastOffsetX

      private int lastOffsetX
      Dernière taille de case et position de décalage (centrage)
    • lastOffsetY

      private int lastOffsetY
      Dernière taille de case et position de décalage (centrage)
    • zoomCentreX

      private int zoomCentreX
      Coordonnées du centre du zoom (souvent position du joueur).
    • zoomCentreY

      private int zoomCentreY
      Coordonnées du centre du zoom (souvent position du joueur).
    • zoom

      private int zoom
      Niveau de zoom : détermine la taille de la portion affichée (ex: 5x5).
  • Constructor Details

    • PanneauCarte

      public PanneauCarte(ControleurJeu controleur, VueJeu vue)
      Constructeur de la vue de la carte. Initialise les images, les événements souris/clavier et le comportement de zoom.
      Parameters:
      controleur - Le contrôleur du jeu (MVC)
      vue - La vue principale pour actualiser les messages ou autres éléments
  • Method Details

    • loadImage

      private BufferedImage loadImage(String nom)
      Charge une image depuis le dossier des ressources.
      Parameters:
      nom - Nom du fichier image à charger.
      Returns:
      L’image chargée ou null si erreur.
    • getCellAt

      private int[] getCellAt(int px, int py)
      Retourne les coordonnées (col, lig) de la cellule cliquée.
      Parameters:
      px - Position x du clic.
      py - Position y du clic.
      Returns:
      Tableau [col, lig] ou null si en dehors.
    • getCell

      private com.google.gson.JsonObject getCell(int col, int lig)
      Récupère l’objet JSON représentant une cellule.
      Parameters:
      col - Colonne dans la vue.
      lig - Ligne dans la vue.
      Returns:
      Objet JSON de la cellule ou null.
    • paintComponent

      protected void paintComponent(Graphics g)
      Redessine l’ensemble de la carte.
      Overrides:
      paintComponent in class JComponent
      Parameters:
      g - Le contexte graphique.
    • tooltipCellule

      private String tooltipCellule(com.google.gson.JsonObject cell, int col, int lig)
      Génère le contenu HTML de l'infobulle d'une cellule.
      Parameters:
      cell - Objet JSON de la cellule.
      col - Colonne dans la vue.
      lig - Ligne dans la vue.
      Returns:
      Texte HTML à afficher.