Merge branch 'main' of grond.iut-fbleau.fr:stiti/SAE31_2024

This commit is contained in:
2024-12-09 20:48:28 +01:00
9 changed files with 232 additions and 31 deletions

View File

@@ -4,14 +4,33 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import fr.monkhanny.dorfromantik.gui.GameModeSelectionPanel; import fr.monkhanny.dorfromantik.gui.GameModeSelectionPanel;
/**
* @version 1.0
* @author Lenny FOULOU
* Listener pour gérer les clics sur le bouton "Précédent" dans le panneau de sélection du mode de jeu.
* Cette classe permet de naviguer vers la page précédente des séries disponibles dans le panneau.
*/
public class GameModePrevButtonActionListener implements ActionListener { public class GameModePrevButtonActionListener implements ActionListener {
/**
* Le panneau de sélection du mode de jeu.
*/
private GameModeSelectionPanel panel; private GameModeSelectionPanel panel;
/**
* Constructeur pour initialiser le listener avec le panneau de sélection du mode de jeu.
*
* @param panel le panneau de sélection du mode de jeu sur lequel agir.
*/
public GameModePrevButtonActionListener(GameModeSelectionPanel panel) { public GameModePrevButtonActionListener(GameModeSelectionPanel panel) {
this.panel = panel; this.panel = panel;
} }
/**
* Méthode appelée lorsqu'une action est déclenchée, comme un clic sur le bouton "Précédent".
* Elle vérifie si la page actuelle est supérieure à 1 et, dans ce cas, passe à la page précédente
* et charge les séries associées à cette page.
*
* @param e l'événement de l'action déclenchée.
*/
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
if (panel.getCurrentPage() > 1) { if (panel.getCurrentPage() > 1) {

View File

@@ -3,14 +3,32 @@ package fr.monkhanny.dorfromantik.listeners;
import fr.monkhanny.dorfromantik.game.Board; import fr.monkhanny.dorfromantik.game.Board;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
/**
* @version 1.0
* @author Moncef STITI
* Listener pour gérer les événements de clics de souris dans le jeu.
* Cette classe permet d'appeler la méthode appropriée du plateau de jeu
* lorsqu'un clic de souris est effectué.
*/
public class GameMouseClickListener extends MouseAdapter { public class GameMouseClickListener extends MouseAdapter {
/**
* Le plateau de jeu sur lequel les clics de souris sont traités.
*/
private Board board; private Board board;
/**
* Constructeur pour initialiser le listener avec le plateau de jeu.
*
* @param board le plateau de jeu sur lequel gérer les clics de souris.
*/
public GameMouseClickListener(Board board) { public GameMouseClickListener(Board board) {
this.board = board; this.board = board;
} }
/**
* Méthode appelée lorsqu'un clic de souris est détecté sur le plateau de jeu.
* Elle délègue le traitement du clic à la méthode {@code handleMouseClick} du plateau.
*
* @param e l'événement du clic de souris.
*/
@Override @Override
public void mousePressed(MouseEvent e) { public void mousePressed(MouseEvent e) {
board.handleMouseClick(e); board.handleMouseClick(e);

View File

@@ -4,15 +4,34 @@ import fr.monkhanny.dorfromantik.game.Board;
import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener; import java.awt.event.MouseWheelListener;
/**
* @version 1.0
* @author Moncef STITI
* Listener pour gérer les événements de la molette de la souris dans le jeu.
* Cette classe permet de faire pivoter la prochaine tuile sélectionnée sur le plateau
* lorsque la molette de la souris est utilisée.
*/
public class GameMouseWheelListener implements MouseWheelListener { public class GameMouseWheelListener implements MouseWheelListener {
/**
* Le plateau de jeu sur lequel les actions sont effectuées.
*/
private Board board; private Board board;
/**
// Constructeur de la classe * Constructeur pour initialiser le listener avec le plateau de jeu.
*
* @param board le plateau de jeu sur lequel effectuer les rotations de tuiles.
*/
public GameMouseWheelListener(Board board) { public GameMouseWheelListener(Board board) {
this.board = board; this.board = board;
} }
/**
* Méthode appelée lorsqu'un événement de la molette de la souris est détecté.
* Si une tuile suivante existe sur le plateau, cette méthode applique une rotation
* à la tuile, dans le sens horaire ou antihoraire en fonction de la direction de la molette.
* Après la rotation, le plateau est redessiné.
*
* @param e l'événement de la molette de la souris.
*/
@Override @Override
public void mouseWheelMoved(MouseWheelEvent e) { public void mouseWheelMoved(MouseWheelEvent e) {
if (board.getNextTile() != null) { if (board.getNextTile() != null) {

View File

@@ -3,13 +3,25 @@ package fr.monkhanny.dorfromantik.listeners;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
/**
* @version 1.0
* @author Khalid CHENOUNA
* Listener pour gérer la fermeture du jeu lorsque le bouton "Quitter" est cliqué.
* Cette classe termine l'exécution de l'application.
*/
public class GameQuitButtonListener implements ActionListener { public class GameQuitButtonListener implements ActionListener {
/**
* Constructeur par défaut pour initialiser le listener.
*/
public GameQuitButtonListener() { public GameQuitButtonListener() {
} }
/**
* Méthode appelée lorsqu'une action est déclenchée, comme un clic sur le bouton "Quitter".
* Cette implémentation termine immédiatement l'exécution de l'application.
*
* @param e l'événement de l'action déclenchée.
*/
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
// Quitter // Quitter

View File

@@ -5,14 +5,31 @@ import java.awt.event.ActionListener;
import fr.monkhanny.dorfromantik.Options; import fr.monkhanny.dorfromantik.Options;
import fr.monkhanny.dorfromantik.game.EscapeMenu; import fr.monkhanny.dorfromantik.game.EscapeMenu;
/**
* @version 1.0
* @author Khalid CHENOUNA
* Listener pour gérer la reprise du jeu lorsque le bouton "Reprendre" est cliqué dans le menu d'échappement.
* Cette classe permet de masquer le menu de pause et de remettre le jeu dans un état actif.
*/
public class GameResumeButtonListener implements ActionListener { public class GameResumeButtonListener implements ActionListener {
/**
* Le menu d'échappement (menu pause) qui doit être masqué lorsque le jeu reprend.
*/
private EscapeMenu escapeMenu; private EscapeMenu escapeMenu;
/**
* Constructeur pour initialiser le listener avec le menu d'échappement.
*
* @param escapeMenu le menu d'échappement à masquer.
*/
public GameResumeButtonListener(EscapeMenu escapeMenu) { public GameResumeButtonListener(EscapeMenu escapeMenu) {
this.escapeMenu = escapeMenu; this.escapeMenu = escapeMenu;
} }
/**
* Méthode appelée lorsqu'une action est déclenchée, comme un clic sur le bouton "Reprendre".
* Elle masque le menu d'échappement et remet le jeu en état actif en désactivant le mode pause.
*
* @param e l'événement de l'action déclenchée.
*/
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
// Cacher le menu de pause // Cacher le menu de pause

View File

@@ -7,12 +7,37 @@ import fr.monkhanny.dorfromantik.gui.SettingsPanel;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import javax.swing.JFrame; import javax.swing.JFrame;
/**
* @version 1.0
* @author Khalid CHENOUNA
* Listener pour gérer l'ouverture de la fenêtre des paramètres lorsqu'un bouton est cliqué.
* Ce listener cache le menu d'échappement (escape menu), affiche une nouvelle fenêtre avec
* les paramètres, et configure cette fenêtre pour revenir à la fenêtre principale du jeu
* lorsqu'elle est fermée.
*/
public class GameSettingsButtonListener implements ActionListener { public class GameSettingsButtonListener implements ActionListener {
/**
* La fenêtre principale du jeu.
*/
private JFrame gameFrame; private JFrame gameFrame;
/**
* La fenêtre dédiée aux paramètres.
*/
private JFrame settingsFrame; private JFrame settingsFrame;
/**
* Le panneau contenant les options de configuration.
*/
private SettingsPanel settingsPanel; private SettingsPanel settingsPanel;
/**
* Le menu d'échappement (menu pause) qui doit être caché lorsque les paramètres sont affichés.
*/
private EscapeMenu escapeMenu; private EscapeMenu escapeMenu;
/**
* Constructeur pour initialiser le listener avec la fenêtre principale et le menu d'échappement.
*
* @param gameFrame la fenêtre principale du jeu.
* @param escapeMenu le menu d'échappement (menu pause) à cacher lorsque la fenêtre des paramètres s'affiche.
*/
public GameSettingsButtonListener(JFrame gameFrame, EscapeMenu escapeMenu) { public GameSettingsButtonListener(JFrame gameFrame, EscapeMenu escapeMenu) {
this.gameFrame = gameFrame; this.gameFrame = gameFrame;
@@ -24,7 +49,13 @@ public class GameSettingsButtonListener implements ActionListener {
// Ajouter le WindowListener pour réafficher la gameFrame lors de la fermeture de settingsFrame // Ajouter le WindowListener pour réafficher la gameFrame lors de la fermeture de settingsFrame
this.settingsFrame.addWindowListener(new GameSettingsWindowListener(gameFrame)); this.settingsFrame.addWindowListener(new GameSettingsWindowListener(gameFrame));
} }
/**
* Méthode appelée lorsqu'une action est déclenchée, comme un clic sur un bouton.
* Elle ouvre la fenêtre des paramètres, cache la fenêtre du jeu et configure
* la fenêtre des paramètres avec la taille et la position de la fenêtre principale.
*
* @param e l'événement de l'action déclenchée.
*/
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
if (escapeMenu != null) { // Vérifier si escapeMenu est non nul if (escapeMenu != null) { // Vérifier si escapeMenu est non nul

View File

@@ -6,42 +6,91 @@ import java.awt.event.WindowListener;
public class GameSettingsWindowListener implements WindowListener { public class GameSettingsWindowListener implements WindowListener {
private JFrame gameFrame; private JFrame gameFrame;
/**
* @version 1.0
* @author Khalid CHENOUNA
* Listener pour gérer les événements liés à la fenêtre des paramètres du jeu.
* Ce listener réaffiche la fenêtre principale du jeu (gameFrame) lorsque la
* fenêtre des paramètres est en train de se fermer.
*/
public GameSettingsWindowListener(JFrame gameFrame) { public GameSettingsWindowListener(JFrame gameFrame) {
/**
* La fenêtre principale du jeu à réafficher.
*/
this.gameFrame = gameFrame; this.gameFrame = gameFrame;
/**
* Constructeur pour initialiser le listener avec la fenêtre principale du jeu.
*
* @param gameFrame la fenêtre principale du jeu.
*/
} }
/**
* Méthode appelée lorsque la fenêtre est ouverte.
* Aucun comportement n'est implémenté pour cet événement.
*
* @param e l'événement de fenêtre.
*/
@Override @Override
public void windowOpened(WindowEvent e) { public void windowOpened(WindowEvent e) {
// Rien à faire ici // Rien à faire ici
} }
/**
* Méthode appelée lorsque la fenêtre est en train de se fermer.
* Cette implémentation réaffiche la fenêtre principale du jeu.
*
* @param e l'événement de fenêtre.
*/
@Override @Override
public void windowClosing(WindowEvent e) { public void windowClosing(WindowEvent e) {
// Réafficher la gameFrame // Réafficher la gameFrame
gameFrame.setVisible(true); gameFrame.setVisible(true);
} }
/**
* Méthode appelée lorsque la fenêtre a été fermée.
* Aucun comportement n'est implémenté pour cet événement.
*
* @param e l'événement de fenêtre.
*/
@Override @Override
public void windowClosed(WindowEvent e) { public void windowClosed(WindowEvent e) {
// Rien à faire ici // Rien à faire ici
} }
/**
* Méthode appelée lorsque la fenêtre est réduite en icône.
* Aucun comportement n'est implémenté pour cet événement.
*
* @param e l'événement de fenêtre.
*/
@Override @Override
public void windowIconified(WindowEvent e) { public void windowIconified(WindowEvent e) {
// Rien à faire ici // Rien à faire ici
} }
/**
* Méthode appelée lorsque la fenêtre est restaurée après avoir été réduite.
* Aucun comportement n'est implémenté pour cet événement.
*
* @param e l'événement de fenêtre.
*/
@Override @Override
public void windowDeiconified(WindowEvent e) { public void windowDeiconified(WindowEvent e) {
// Rien à faire ici // Rien à faire ici
} }
/**
* Méthode appelée lorsque la fenêtre devient active.
* Aucun comportement n'est implémenté pour cet événement.
*
* @param e l'événement de fenêtre.
*/
@Override @Override
public void windowActivated(WindowEvent e) { public void windowActivated(WindowEvent e) {
// Rien à faire ici // Rien à faire ici
} }
/**
* Méthode appelée lorsque la fenêtre devient inactive.
* Aucun comportement n'est implémenté pour cet événement.
*
* @param e l'événement de fenêtre.
*/
@Override @Override
public void windowDeactivated(WindowEvent e) { public void windowDeactivated(WindowEvent e) {
// Rien à faire ici // Rien à faire ici

View File

@@ -1,14 +1,33 @@
package fr.monkhanny.dorfromantik.listeners; package fr.monkhanny.dorfromantik.listeners;
import fr.monkhanny.dorfromantik.game.Board; import fr.monkhanny.dorfromantik.game.Board;
/**
* @version 1.0
* @author Lenny FOULOU
* Listener pour gérer l'appui sur la touche Espace dans le jeu.
* Lorsqu'un événement d'appui sur la touche Espace est détecté,
* le plateau de jeu est recentré grâce à une méthode spécifique.
*/
public class GameSpaceKeyListener extends java.awt.event.KeyAdapter { public class GameSpaceKeyListener extends java.awt.event.KeyAdapter {
/**
* Le plateau de jeu à recentrer lorsque la touche Espace est enfoncée.
*/
private Board board; private Board board;
/**
* Constructeur pour initialiser le listener avec le plateau de jeu.
*
* @param board le plateau de jeu sur lequel appliquer l'action de la touche Espace.
*/
public GameSpaceKeyListener(Board board) { public GameSpaceKeyListener(Board board) {
this.board = board; this.board = board;
} }
/**
* Méthode appelée lorsqu'une touche du clavier est enfoncée.
* Si la touche Espace est enfoncée, appelle une méthode du plateau de jeu
* pour le recentrer.
*
* @param e l'événement lié à l'appui sur une touche.
*/
@Override @Override
public void keyPressed(java.awt.event.KeyEvent e) { public void keyPressed(java.awt.event.KeyEvent e) {
if (e.getKeyCode() == java.awt.event.KeyEvent.VK_SPACE) { if (e.getKeyCode() == java.awt.event.KeyEvent.VK_SPACE) {

View File

@@ -4,14 +4,31 @@ import fr.monkhanny.dorfromantik.game.Board;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelEvent;
/**
* @version 1.0
* @author Lenny FOULOU
* Listener pour gérer le zoom dans le jeu à l'aide de la molette de la souris.
* Le zoom s'effectue uniquement lorsque la touche Ctrl est enfoncée.
*/
public class GameZoomListener extends MouseAdapter { public class GameZoomListener extends MouseAdapter {
/**
* Le plateau de jeu sur lequel les actions de zoom seront effectuées.
*/
private Board board; private Board board;
/**
* Constructeur pour initialiser le listener avec le plateau de jeu.
*
* @param board le plateau de jeu sur lequel appliquer les zooms.
*/
public GameZoomListener(Board board) { public GameZoomListener(Board board) {
this.board = board; this.board = board;
} }
/**
* Méthode appelée lorsqu'un événement de molette de souris est détecté.
* Si la touche Ctrl est enfoncée, effectue un zoom avant ou arrière en fonction de la rotation de la molette.
*
* @param e l'événement de molette de souris.
*/
@Override @Override
public void mouseWheelMoved(MouseWheelEvent e) { public void mouseWheelMoved(MouseWheelEvent e) {
// Vérifier si la touche Ctrl est enfoncée et la direction de la molette // Vérifier si la touche Ctrl est enfoncée et la direction de la molette