From 2c93a102f275bfc5630271ceea2247564598b856 Mon Sep 17 00:00:00 2001 From: Marc Date: Fri, 27 Mar 2026 10:40:40 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20:=20cheat=20mode=20+=20fix:=20invincibi?= =?UTF-8?q?lit=C3=A9=20malus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ajout du cheat mode, plus fix d'un problème: avant possibilité de perdre une vie si malus récupéré pendant la période que le cercle est invincible ( clignote ) alors que ca ne devrait pas l"etre --- src/Bonus.java | 2 +- src/Jeu.java | 4 +++- src/Malus.java | 2 +- src/MenuPrincipal.java | 12 +++++++++++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/Bonus.java b/src/Bonus.java index ad057b5..a85ac2c 100644 --- a/src/Bonus.java +++ b/src/Bonus.java @@ -65,7 +65,7 @@ public class Bonus extends ObjetGraphique { if (!dejaCapture) { for (Joueur joueur : joueurs) { if (joueur.verifierCollisionCollectible(x, y, taille, vitesseLigne)) { - joueur.ajouterVie(); + if (!monJeu.cheatMode) joueur.ajouterVie(); dejaCapture = true; break; } diff --git a/src/Jeu.java b/src/Jeu.java index 4472868..e17da80 100644 --- a/src/Jeu.java +++ b/src/Jeu.java @@ -43,6 +43,8 @@ public class Jeu implements KeyListener, ActionListener, MouseListener { protected JFrame fenetre; protected MenuPrincipal menu; + public boolean cheatMode = false; + public Jeu() { labScore = new JLabel(); labScore.setForeground(Color.WHITE); @@ -176,7 +178,7 @@ public class Jeu implements KeyListener, ActionListener, MouseListener { for (Joueur joueur : joueurs) { joueur.mettreAJourRayon(rayonBase); joueur.mettreAJourInvincibilite(); - joueur.verifierCollisionLigne(lili); + if (!cheatMode) joueur.verifierCollisionLigne(lili); joueur.resterDansLigne(lili); } diff --git a/src/Malus.java b/src/Malus.java index c0e9e91..97e6a52 100644 --- a/src/Malus.java +++ b/src/Malus.java @@ -65,7 +65,7 @@ public class Malus extends ObjetGraphique { if (!dejaCapture) { for (Joueur joueur : joueurs) { if (joueur.verifierCollisionCollectible(x, y, taille, vitesseLigne)) { - joueur.retirerVie(); + if (!monJeu.cheatMode && !joueur.estInvincible()) joueur.retirerVie(); dejaCapture = true; break; } diff --git a/src/MenuPrincipal.java b/src/MenuPrincipal.java index 4e12862..dccedc3 100644 --- a/src/MenuPrincipal.java +++ b/src/MenuPrincipal.java @@ -26,7 +26,7 @@ public class MenuPrincipal { public void afficher(String pseudoActuel) { - JPanel panneau = new JPanel(new GridLayout(7, 1, 10, 10)); + JPanel panneau = new JPanel(new GridLayout(8, 1, 10, 10)); JLabel titre = new JLabel("LINEA", SwingConstants.CENTER); champPseudo = new JTextField(pseudoActuel, 15); @@ -35,6 +35,7 @@ public class MenuPrincipal { JButton bouton2Joueurs = new JButton("2 Joueurs"); JButton boutonClassement = new JButton("Classement"); JButton boutonQuitter = new JButton("Quitter"); + JButton boutonCheat = new JButton("Cheat Mode : OFF"); bouton1Joueur.addActionListener(new ActionListener() { @Override @@ -65,11 +66,20 @@ public class MenuPrincipal { } }); + boutonCheat.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + jeu.cheatMode = !jeu.cheatMode; + boutonCheat.setText(jeu.cheatMode ? "Cheat Mode : ON" : "Cheat Mode : OFF"); + } + }); + panneau.add(titre); panneau.add(champPseudo); panneau.add(bouton1Joueur); panneau.add(bouton2Joueurs); panneau.add(boutonClassement); + panneau.add(boutonCheat); panneau.add(boutonQuitter); JPanel conteneur = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 130));