From e2153863c6452923b7382e7475a2ac1961116c71 Mon Sep 17 00:00:00 2001 From: Azurlors <florianrichard2001@gmail.com> Date: Fri, 30 Dec 2022 15:04:21 +0100 Subject: [PATCH] Game Over + 1 seul JFrame --- .../main/java/engine/GameEngineGraphical.java | 7 ++-- .../main/java/engine/GraphicalInterface.java | 2 +- .../src/main/java/engine/MenuPanel.java | 39 +++++++++++++++---- MAVENProject/src/main/java/jeu/Jeu.java | 4 +- MAVENProject/src/main/java/spotify/MP3.java | 7 +++- MAVENProject/src/main/java/start/Main.java | 15 ++++++- 6 files changed, 60 insertions(+), 14 deletions(-) diff --git a/MAVENProject/src/main/java/engine/GameEngineGraphical.java b/MAVENProject/src/main/java/engine/GameEngineGraphical.java index 34feb24..0d4e44b 100644 --- a/MAVENProject/src/main/java/engine/GameEngineGraphical.java +++ b/MAVENProject/src/main/java/engine/GameEngineGraphical.java @@ -57,9 +57,9 @@ public class GameEngineGraphical { // creation de l'interface graphique this.gui = new GraphicalInterface(this.gamePainter,this.gameController); - + boolean x = true; // boucle de game - while (!this.game.isFinished()) { + while (!this.game.isFinished() || x) { // demande controle utilisateur HashMap<String,Boolean> a = this.gameController.getCommand(); // // fait evoluer le game @@ -69,9 +69,10 @@ public class GameEngineGraphical { if ( i == 5){ i = 0; this.gui.paint(); + x = false; } // met en attente - Thread.sleep(1); + Thread.sleep(2); } } diff --git a/MAVENProject/src/main/java/engine/GraphicalInterface.java b/MAVENProject/src/main/java/engine/GraphicalInterface.java index 19d20bd..2bb97ad 100644 --- a/MAVENProject/src/main/java/engine/GraphicalInterface.java +++ b/MAVENProject/src/main/java/engine/GraphicalInterface.java @@ -10,6 +10,7 @@ import javax.swing.JFrame; * */ public class GraphicalInterface { + public static JFrame f; /** * le Panel pour l'afficheur @@ -24,7 +25,6 @@ public class GraphicalInterface { * */ public GraphicalInterface(GamePainter gamePainter, GameController gameController){ - JFrame f=new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // attacher le panel contenant l'afficheur du game diff --git a/MAVENProject/src/main/java/engine/MenuPanel.java b/MAVENProject/src/main/java/engine/MenuPanel.java index e726e83..f76ae5d 100644 --- a/MAVENProject/src/main/java/engine/MenuPanel.java +++ b/MAVENProject/src/main/java/engine/MenuPanel.java @@ -3,31 +3,56 @@ package engine; import javax.swing.*; import java.awt.*; +import static engine.GraphicalInterface.f; + public class MenuPanel { - private boolean lancementpartie = false; - private final JButton button; + private static boolean lancementpartie = false; + private JButton button; + + + + public static void setLancementpartie(boolean lancementpartie) { + MenuPanel.lancementpartie = lancementpartie; + } + + private Panel gameMenu; public boolean isLancementpartie() { return lancementpartie; } public MenuPanel(){ - JFrame f=new JFrame(); + f=new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setLayout(new BorderLayout()); f.setPreferredSize(new Dimension(jeu.Painter.getWidth(), jeu.Painter.getHeight())); - this.button = new JButton("Nouvelle partie"); - JPanel panel = new JPanel(); - panel.add(button,BorderLayout.CENTER); - f.getContentPane().add(panel); + } + public void menudebut(){ + gameMenu = new Panel(); + button = new JButton("Nouvelle partie"); + gameMenu.add(button,BorderLayout.CENTER); + f.getContentPane().add(gameMenu); f.pack(); f.setVisible(true); f.getContentPane().setFocusable(true); } + public void menufin(){ + gameMenu = new Panel(new FlowLayout(FlowLayout.CENTER)); + JLabel label = new JLabel("Game Over"); + label.setFont(new Font("Arial", Font.BOLD, 24)); + label.setForeground(Color.RED); + gameMenu.add(label); + f.getContentPane().add(gameMenu); + f.pack(); + f.setVisible(true); + f.getContentPane().setFocusable(true); + } + + public void waitlancementpartie(){ button.addActionListener(e -> lancementpartie = true); } diff --git a/MAVENProject/src/main/java/jeu/Jeu.java b/MAVENProject/src/main/java/jeu/Jeu.java index 02b1070..3628e41 100644 --- a/MAVENProject/src/main/java/jeu/Jeu.java +++ b/MAVENProject/src/main/java/jeu/Jeu.java @@ -187,11 +187,13 @@ public class Jeu implements Game{ //animation du perso dans le jeu (definir la bonne frame a cet instant) animation(Attack, Right, Left); - } @Override public boolean isFinished() { + if(gameCharacter.death()){ + return true; + } // le jeu n'est jamais fini return false; } diff --git a/MAVENProject/src/main/java/spotify/MP3.java b/MAVENProject/src/main/java/spotify/MP3.java index 9941ea3..9e1ee87 100644 --- a/MAVENProject/src/main/java/spotify/MP3.java +++ b/MAVENProject/src/main/java/spotify/MP3.java @@ -8,6 +8,8 @@ import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; public class MP3 { + + Clip clip; String filePath; public MP3(String musicPath){ String fn = "Music/"; @@ -21,7 +23,7 @@ public class MP3 { File music = new File(new File(filePath).getAbsolutePath()); try { AudioInputStream audios = AudioSystem.getAudioInputStream(music); - Clip clip = AudioSystem.getClip(); + clip = AudioSystem.getClip(); clip.open(audios); clip.start(); @@ -34,4 +36,7 @@ public class MP3 { } + public void stopMusic(){ + clip.stop(); + } } diff --git a/MAVENProject/src/main/java/start/Main.java b/MAVENProject/src/main/java/start/Main.java index 0206d95..a4bfe7b 100644 --- a/MAVENProject/src/main/java/start/Main.java +++ b/MAVENProject/src/main/java/start/Main.java @@ -8,6 +8,8 @@ import engine.GameEngineGraphical; import jeu.Controller; import jeu.Jeu; +import static engine.MenuPanel.setLancementpartie; + /** * lancement du moteur avec le jeu */ @@ -20,11 +22,15 @@ public class Main { Painter painter = new Painter(); Controller controller = new Controller(); + GameEngineGraphical engine = new GameEngineGraphical(game, painter, controller); + //creation du menu MenuPanel menu = new MenuPanel(); + menu.menudebut(); while(!menu.isLancementpartie()){ menu.waitlancementpartie(); } + setLancementpartie(false); //pour la musique @@ -32,8 +38,15 @@ public class Main { mp3.displayMusic(); // classe qui lance le moteur de jeu generique - GameEngineGraphical engine = new GameEngineGraphical(game, painter, controller); + engine.run(); + mp3.stopMusic(); + + + mp3 = new MP3("failsound.wav"); + mp3.displayMusic(); + menu.menufin(); + } } -- GitLab