diff --git a/src/com/charpentierbalocchi/dorfjavatik/resources/PleasantHill.wav b/src/com/charpentierbalocchi/dorfjavatik/resources/PleasantHill.wav new file mode 100644 index 0000000..b8ec747 Binary files /dev/null and b/src/com/charpentierbalocchi/dorfjavatik/resources/PleasantHill.wav differ diff --git a/src/com/charpentierbalocchi/dorfjavatik/util/MusicPlayer.java b/src/com/charpentierbalocchi/dorfjavatik/util/MusicPlayer.java new file mode 100644 index 0000000..852cb48 --- /dev/null +++ b/src/com/charpentierbalocchi/dorfjavatik/util/MusicPlayer.java @@ -0,0 +1,39 @@ +package com.charpentierbalocchi.dorfjavatik.util; + +import javax.sound.sampled.*; +import java.io.IOException; +import java.net.URL; + +public class MusicPlayer { + + private Clip clip; + + public MusicPlayer(String musicPath) { + try { + // Charger le fichier audio + URL url = getClass().getResource(musicPath); + AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(url); + + // Obtenir un clip audio + clip = AudioSystem.getClip(); + clip.open(audioInputStream); + } catch (UnsupportedAudioFileException | IOException | LineUnavailableException e) { + e.printStackTrace(); + } + } + + // Méthode pour démarrer la lecture + public void play() { + if (clip != null) { + clip.start(); + clip.loop(Clip.LOOP_CONTINUOUSLY); // Boucler continuellement la musique + } + } + + // Méthode pour arrêter la lecture + public void stop() { + if (clip != null && clip.isRunning()) { + clip.stop(); + } + } +} diff --git a/src/com/charpentierbalocchi/dorfjavatik/view/FenetreJeu.java b/src/com/charpentierbalocchi/dorfjavatik/view/FenetreJeu.java index 13e18ad..d4eccb6 100644 --- a/src/com/charpentierbalocchi/dorfjavatik/view/FenetreJeu.java +++ b/src/com/charpentierbalocchi/dorfjavatik/view/FenetreJeu.java @@ -2,6 +2,7 @@ package com.charpentierbalocchi.dorfjavatik.view; import com.charpentierbalocchi.dorfjavatik.controller.ControleurJeu; import com.charpentierbalocchi.dorfjavatik.model.Tuile; +import com.charpentierbalocchi.dorfjavatik.util.MusicPlayer; import javax.swing.*; import java.awt.*; @@ -18,6 +19,7 @@ public class FenetreJeu extends JFrame { private ControleurJeu controleurJeu; // Instance du contrôleur de jeu private JPanel panelPlateau; // Panneau pour le plateau de jeu private JPanel panelTuileCourante; // Panneau pour la tuile courante + private MusicPlayer musicPlayer; // Instance du lecteur de musique public FenetreJeu(int taillePlateau) { super("DorfJavaTik"); // Titre de la fenêtre @@ -30,6 +32,9 @@ public class FenetreJeu extends JFrame { setSize(1300, 1000); // Fixe la taille de la fenêtre à 1300 x 1000 setLocationRelativeTo(null); // Centre la fenêtre sur l'écran setVisible(true); // Rendre la fenêtre visible + // Démarrer la musique de fond + musicPlayer = new MusicPlayer("/com/charpentierbalocchi/dorfjavatik/resources/PleasantHill.wav"); + musicPlayer.play(); } private void initUI() { @@ -167,6 +172,13 @@ public class FenetreJeu extends JFrame { labelScore.setText("Score: " + score); } + public void dispose() { + super.dispose(); + if (musicPlayer != null) { + musicPlayer.stop(); + } + } + public Tuile getTuileCourante() { return tuileCourante; } diff --git a/tests/Debut.java b/tests/Debut.java deleted file mode 100644 index e5c98b6..0000000 --- a/tests/Debut.java +++ /dev/null @@ -1,35 +0,0 @@ -package tests; - -import javax.swing.*; -import java.awt.*; -import java.awt.event.ActionEvent; - -public class Debut { - public static void main(String[] args) { - - JFrame fenetre = new JFrame(); - fenetre.setSize(500, 300); - fenetre.setLocation(0, 0); - fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - - JLabel etiquette = new JLabel(); - etiquette.setHorizontalAlignment(JLabel.RIGHT); - etiquette.setVerticalAlignment(JLabel.BOTTOM); - fenetre.add(etiquette, BorderLayout.CENTER); - - JButton Nouveau = new JButton("Nouvelle Partie"); - etiquette.setHorizontalAlignment(JLabel.RIGHT); - etiquette.setVerticalAlignment(JLabel.BOTTOM); - fenetre.add(etiquette, BorderLayout.SOUTH); - - fenetre.setVisible(true); - - /* - * public void actionPerformed(ActionEvent e){ - * String action=e.getActionCommand(); - * if(action.equals("Nouvelle Partie")){ - * // Do something - * } - */ - } -} \ No newline at end of file