ajouts listeners
This commit is contained in:
@@ -1,21 +1,39 @@
|
||||
package main;
|
||||
import view.*;
|
||||
|
||||
import view.*;
|
||||
import javax.sound.sampled.AudioInputStream;
|
||||
import javax.sound.sampled.AudioSystem;
|
||||
import javax.sound.sampled.Clip;
|
||||
import javax.swing.*;
|
||||
import java.net.URL;
|
||||
|
||||
/**
|
||||
* Classe principale du programme qui initialise l'interface utilisateur
|
||||
* et joue un fichier audio en boucle.
|
||||
*/
|
||||
public class Main {
|
||||
|
||||
/**
|
||||
* Point d'entrée du programme. Initialise l'interface utilisateur
|
||||
* et démarre la lecture en boucle de la musique de fond.
|
||||
*
|
||||
* @param args les arguments de ligne de commande (non utilisés)
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
SwingUtilities.invokeLater(() -> {
|
||||
MenuView menuView = new MenuView();
|
||||
App.addView(menuView, App.MENU_VIEW);
|
||||
App.showView(App.MENU_VIEW);
|
||||
String filepath = "/java/Music/audio.wav";
|
||||
PlayMusic(filepath);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Joue un fichier audio en boucle.
|
||||
*
|
||||
* @param location le chemin d'accès au fichier audio à jouer
|
||||
*/
|
||||
public static void PlayMusic(String location) {
|
||||
try {
|
||||
URL url = Main.class.getResource(location);
|
||||
@@ -24,6 +42,7 @@ public class Main {
|
||||
Clip clip = AudioSystem.getClip();
|
||||
clip.open(audioInput);
|
||||
clip.start();
|
||||
clip.loop(Clip.LOOP_CONTINUOUSLY); // Boucle en continu
|
||||
} else {
|
||||
System.out.println("Fichier audio introuvable");
|
||||
}
|
||||
|
@@ -107,6 +107,10 @@ java/controller/AllScore.class: java/controller/AllScore.java
|
||||
|
||||
### RÈGLE POUR COPIER LES IMAGES ###
|
||||
|
||||
Music:
|
||||
mkdir -p classes/java/Music
|
||||
if [ -d java/Music ]; then cp -r java/Music/* classes/java/Music/; else echo "Le répertoire java/Music n'existe pas."; fi
|
||||
|
||||
copy-images:
|
||||
mkdir -p classes/java/view/img
|
||||
if [ -d java/view/img ]; then cp -r java/view/img/* classes/java/view/img/; else echo "Le répertoire java/view/img n'existe pas."; fi
|
||||
@@ -119,7 +123,8 @@ $(MANIFEST_FILE):
|
||||
|
||||
### ARCHIVE JAR ###
|
||||
|
||||
Main.jar: Main.class copy-images $(MANIFEST_FILE)
|
||||
Main.jar: Main.class copy-images Music $(MANIFEST_FILE)
|
||||
mkdir -p classes/java/Music/
|
||||
mkdir -p classes/java/view/img
|
||||
jar cfm Main.jar $(MANIFEST_FILE) -C classes .
|
||||
|
||||
@@ -131,9 +136,10 @@ run: Main.class copy-images
|
||||
clean:
|
||||
-rm -f classes/**/*.class
|
||||
-rm -rf classes/java/view/img
|
||||
-rm -rf classes/Music
|
||||
|
||||
### BUTS FACTICES ###
|
||||
|
||||
.PHONY: run clean copy-images
|
||||
|
||||
### FIN ###
|
||||
### FIN ###
|
BIN
src/main/classes/controller/AllScore.class
Normal file
BIN
src/main/classes/controller/AllScore.class
Normal file
Binary file not shown.
BIN
src/main/classes/controller/CameraController.class
Normal file
BIN
src/main/classes/controller/CameraController.class
Normal file
Binary file not shown.
BIN
src/main/classes/controller/CameraControllerListener.class
Normal file
BIN
src/main/classes/controller/CameraControllerListener.class
Normal file
Binary file not shown.
BIN
src/main/classes/controller/GameContext.class
Normal file
BIN
src/main/classes/controller/GameContext.class
Normal file
Binary file not shown.
BIN
src/main/classes/controller/GameController.class
Normal file
BIN
src/main/classes/controller/GameController.class
Normal file
Binary file not shown.
BIN
src/main/classes/controller/GameEndListener.class
Normal file
BIN
src/main/classes/controller/GameEndListener.class
Normal file
Binary file not shown.
BIN
src/main/classes/controller/HexagonMouseListener.class
Normal file
BIN
src/main/classes/controller/HexagonMouseListener.class
Normal file
Binary file not shown.
BIN
src/main/classes/controller/MouseDragHandler.class
Normal file
BIN
src/main/classes/controller/MouseDragHandler.class
Normal file
Binary file not shown.
BIN
src/main/classes/controller/MousePressHandler.class
Normal file
BIN
src/main/classes/controller/MousePressHandler.class
Normal file
Binary file not shown.
BIN
src/main/classes/controller/MouseWheelController.class
Normal file
BIN
src/main/classes/controller/MouseWheelController.class
Normal file
Binary file not shown.
BIN
src/main/classes/controller/ScoreGameContext.class
Normal file
BIN
src/main/classes/controller/ScoreGameContext.class
Normal file
Binary file not shown.
BIN
src/main/classes/controller/SendScore.class
Normal file
BIN
src/main/classes/controller/SendScore.class
Normal file
Binary file not shown.
BIN
src/main/classes/controller/SeriesSelector.class
Normal file
BIN
src/main/classes/controller/SeriesSelector.class
Normal file
Binary file not shown.
BIN
src/main/classes/controller/TilePlacer.class
Normal file
BIN
src/main/classes/controller/TilePlacer.class
Normal file
Binary file not shown.
BIN
src/main/classes/java/view/img/D.png
Normal file
BIN
src/main/classes/java/view/img/D.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 27 KiB |
BIN
src/main/classes/java/view/img/bg.png
Normal file
BIN
src/main/classes/java/view/img/bg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 322 KiB |
BIN
src/main/classes/java/view/img/quit.png
Normal file
BIN
src/main/classes/java/view/img/quit.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 36 KiB |
BIN
src/main/classes/main/Main.class
Normal file
BIN
src/main/classes/main/Main.class
Normal file
Binary file not shown.
BIN
src/main/classes/model/Pocket.class
Normal file
BIN
src/main/classes/model/Pocket.class
Normal file
Binary file not shown.
BIN
src/main/classes/model/TerrainType.class
Normal file
BIN
src/main/classes/model/TerrainType.class
Normal file
Binary file not shown.
BIN
src/main/classes/model/Tile.class
Normal file
BIN
src/main/classes/model/Tile.class
Normal file
Binary file not shown.
BIN
src/main/classes/model/TileDatabaseManager.class
Normal file
BIN
src/main/classes/model/TileDatabaseManager.class
Normal file
Binary file not shown.
BIN
src/main/classes/view/App.class
Normal file
BIN
src/main/classes/view/App.class
Normal file
Binary file not shown.
BIN
src/main/classes/view/BtnPerso.class
Normal file
BIN
src/main/classes/view/BtnPerso.class
Normal file
Binary file not shown.
BIN
src/main/classes/view/ButtonHoverListener.class
Normal file
BIN
src/main/classes/view/ButtonHoverListener.class
Normal file
Binary file not shown.
BIN
src/main/classes/view/GameView.class
Normal file
BIN
src/main/classes/view/GameView.class
Normal file
Binary file not shown.
BIN
src/main/classes/view/HexagonTile$1.class
Normal file
BIN
src/main/classes/view/HexagonTile$1.class
Normal file
Binary file not shown.
BIN
src/main/classes/view/HexagonTile.class
Normal file
BIN
src/main/classes/view/HexagonTile.class
Normal file
Binary file not shown.
BIN
src/main/classes/view/MenuView.class
Normal file
BIN
src/main/classes/view/MenuView.class
Normal file
Binary file not shown.
BIN
src/main/classes/view/ScoreView$1.class
Normal file
BIN
src/main/classes/view/ScoreView$1.class
Normal file
Binary file not shown.
BIN
src/main/classes/view/ScoreView.class
Normal file
BIN
src/main/classes/view/ScoreView.class
Normal file
Binary file not shown.
39
src/main/java/controller/BackButtonMouseListener.java
Normal file
39
src/main/java/controller/BackButtonMouseListener.java
Normal file
@@ -0,0 +1,39 @@
|
||||
package controller;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import javax.swing.JButton;
|
||||
|
||||
/**
|
||||
* Listener de souris pour le bouton de retour dans l'interface de score.
|
||||
* Change la couleur de fond du bouton lorsqu'il est survolé.
|
||||
*/
|
||||
public class BackButtonMouseListener extends MouseAdapter {
|
||||
private final JButton button;
|
||||
private final Color hoverColor;
|
||||
private final Color normalColor;
|
||||
|
||||
/**
|
||||
* Constructeur de <code>BackButtonMouseListener</code>.
|
||||
*
|
||||
* @param button Le bouton cible.
|
||||
* @param hoverColor La couleur de fond du bouton lors du survol.
|
||||
* @param normalColor La couleur de fond normale du bouton.
|
||||
*/
|
||||
public BackButtonMouseListener(JButton button, Color hoverColor, Color normalColor) {
|
||||
this.button = button;
|
||||
this.hoverColor = hoverColor;
|
||||
this.normalColor = normalColor;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseEntered(MouseEvent e) {
|
||||
button.setBackground(hoverColor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseExited(MouseEvent e) {
|
||||
button.setBackground(normalColor);
|
||||
}
|
||||
}
|
22
src/main/java/controller/NewGameButtonListener.java
Normal file
22
src/main/java/controller/NewGameButtonListener.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package controller;
|
||||
|
||||
import view.MenuView;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
/**
|
||||
* Listener pour le bouton Nouveaux Jeu dans le menu principal.
|
||||
*/
|
||||
public class NewGameButtonListener implements ActionListener {
|
||||
private final MenuView menuView;
|
||||
|
||||
public NewGameButtonListener(MenuView menuView) {
|
||||
this.menuView = menuView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
menuView.toggleHowToPlay();
|
||||
}
|
||||
}
|
16
src/main/java/controller/QuitButtonListener.java
Normal file
16
src/main/java/controller/QuitButtonListener.java
Normal file
@@ -0,0 +1,16 @@
|
||||
package controller;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
/**
|
||||
* Listener pour le bouton Quitter dans le menu principal.
|
||||
* Ferme l'application lorsqu'il est activé.
|
||||
*/
|
||||
public class QuitButtonListener implements ActionListener {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
System.exit(0); // Ferme l'application
|
||||
}
|
||||
}
|
22
src/main/java/controller/ResumeButtonListener.java
Normal file
22
src/main/java/controller/ResumeButtonListener.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package controller;
|
||||
|
||||
import view.MenuView;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
/**
|
||||
* Listener pour le bouton Reprendre la partie dans le menu principal.
|
||||
*/
|
||||
public class ResumeButtonListener implements ActionListener {
|
||||
private final MenuView menuView;
|
||||
|
||||
public ResumeButtonListener(MenuView menuView) {
|
||||
this.menuView = menuView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
menuView.showSeriesButtons();
|
||||
}
|
||||
}
|
30
src/main/java/controller/SeriesButtonListener.java
Normal file
30
src/main/java/controller/SeriesButtonListener.java
Normal file
@@ -0,0 +1,30 @@
|
||||
package controller;
|
||||
|
||||
import view.App;
|
||||
import view.GameView;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
/**
|
||||
* Listener pour les boutons de sélection de séries dans le menu principal.
|
||||
*/
|
||||
public class SeriesButtonListener implements ActionListener {
|
||||
private final int seriesId;
|
||||
private final SeriesSelector seriesSelector;
|
||||
|
||||
public SeriesButtonListener(int seriesId, SeriesSelector seriesSelector) {
|
||||
this.seriesId = seriesId;
|
||||
this.seriesSelector = seriesSelector;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
GameView gameView = new GameView(seriesId);
|
||||
App.addView(gameView, App.GAME_VIEW);
|
||||
App.showView(App.GAME_VIEW);
|
||||
if (seriesSelector != null) {
|
||||
seriesSelector.startGameWithSeries(seriesId);
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,6 +1,10 @@
|
||||
package view;
|
||||
|
||||
import controller.SeriesSelector;
|
||||
import controller.ResumeButtonListener;
|
||||
import controller.NewGameButtonListener;
|
||||
import controller.SeriesButtonListener;
|
||||
import controller.QuitButtonListener;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
@@ -59,7 +63,7 @@ public class MenuView extends JPanel {
|
||||
/**
|
||||
* Affiche ou masque le panneau "Comment jouer".
|
||||
*/
|
||||
private void toggleHowToPlay() {
|
||||
public void toggleHowToPlay() {
|
||||
seriesPanel.setVisible(false);
|
||||
howToPlayPanel.setVisible(!howToPlayPanel.isVisible());
|
||||
centeredPanel.removeAll();
|
||||
@@ -102,8 +106,10 @@ public class MenuView extends JPanel {
|
||||
quitButton.setOpaque(true);
|
||||
quitButton.setFocusPainted(false);
|
||||
|
||||
resumeButton.addActionListener(e -> showSeriesButtons());
|
||||
newGameButton.addActionListener(e -> toggleHowToPlay());
|
||||
// Utilisation des listeners dans des fichiers séparés
|
||||
resumeButton.addActionListener(new ResumeButtonListener(this));
|
||||
newGameButton.addActionListener(new NewGameButtonListener(this));
|
||||
quitButton.addActionListener(new QuitButtonListener()); // Ajout du listener pour le bouton Quitter
|
||||
|
||||
howToPlayPanel = createHowToPlayPanel();
|
||||
howToPlayPanel.setVisible(false);
|
||||
@@ -183,14 +189,7 @@ public class MenuView extends JPanel {
|
||||
for (int i = 1; i <= 4; i++) {
|
||||
int seriesId = i;
|
||||
BtnPerso seriesButton = new BtnPerso("Série " + seriesId);
|
||||
seriesButton.addActionListener(e -> {
|
||||
GameView gameView = new GameView(seriesId);
|
||||
App.addView(gameView, App.GAME_VIEW);
|
||||
App.showView(App.GAME_VIEW);
|
||||
if (seriesSelector != null) {
|
||||
seriesSelector.startGameWithSeries(seriesId);
|
||||
}
|
||||
});
|
||||
seriesButton.addActionListener(new SeriesButtonListener(seriesId, seriesSelector));
|
||||
|
||||
seriesButton.addMouseListener(new ButtonHoverListener());
|
||||
panel.add(seriesButton);
|
||||
|
@@ -1,11 +1,12 @@
|
||||
// src/main/java/view/ScoreView.java
|
||||
package view;
|
||||
|
||||
import controller.AllScore;
|
||||
import controller.BackButtonMouseListener;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import controller.AllScore;
|
||||
|
||||
/**
|
||||
* La classe <code>ScoreView</code> représente l'interface utilisateur
|
||||
@@ -78,15 +79,9 @@ public class ScoreView extends JPanel {
|
||||
// Bouton de retour au menu
|
||||
BtnPerso backButton = new BtnPerso("Retour au Menu");
|
||||
backButton.addActionListener(e -> App.showView(App.MENU_VIEW));
|
||||
backButton.addMouseListener(new java.awt.event.MouseAdapter() {
|
||||
public void mouseEntered(java.awt.event.MouseEvent evt) {
|
||||
backButton.setBackground(hoverColor);
|
||||
}
|
||||
|
||||
public void mouseExited(java.awt.event.MouseEvent evt) {
|
||||
backButton.setBackground(normalColor);
|
||||
}
|
||||
});
|
||||
// Ajout de BackButtonMouseListener pour le survol
|
||||
backButton.addMouseListener(new BackButtonMouseListener(backButton, hoverColor, normalColor));
|
||||
|
||||
// Panneau de score actuel
|
||||
JPanel currentScorePanel = new JPanel();
|
||||
|
Reference in New Issue
Block a user