diff --git a/src/GestionnaireNiveau.java b/src/GestionnaireNiveau.java index 41e47a8..181ca76 100644 --- a/src/GestionnaireNiveau.java +++ b/src/GestionnaireNiveau.java @@ -54,12 +54,13 @@ public class GestionnaireNiveau { e.printStackTrace(); } - // Si aucun niveau chargé, on en met un par défaut pour éviter un crash if (niveaux.isEmpty()) { niveaux.add(new Niveau(1, new Color(112, 158, 251), 8, 1.0/80.0, 70, 100, 500)); } } + private boolean niveauVientDeChanger = false; + public void mettreAJour() { framesDepuisDebut++; framesDansNiveau++; @@ -67,9 +68,18 @@ public class GestionnaireNiveau { if (framesDansNiveau >= FRAMES_PAR_NIVEAU && indexNiveau < niveaux.size() - 1) { indexNiveau++; framesDansNiveau = 0; + niveauVientDeChanger = true; } } + public boolean aChangéDeNiveau() { + if (niveauVientDeChanger) { + niveauVientDeChanger = false; + return true; + } + return false; + } + public Niveau getNiveauActuel() { return niveaux.get(indexNiveau); } diff --git a/src/Jeu.java b/src/Jeu.java index af2c91b..85aefe0 100644 --- a/src/Jeu.java +++ b/src/Jeu.java @@ -159,6 +159,9 @@ public class Jeu implements KeyListener, ActionListener, MouseListener { } gestionnaireNiveau.mettreAJour(); + if (gestionnaireNiveau.aChangéDeNiveau()) { + compteurInvincible = 0; + } ecran.setCouleurFond(gestionnaireNiveau.getCouleurFondInterpolee()); double rayon = gestionnaireNiveau.getRayonCercle(); diff --git a/src/Ligne.java b/src/Ligne.java index 6b6fedd..3bc262a 100644 --- a/src/Ligne.java +++ b/src/Ligne.java @@ -56,7 +56,6 @@ public class Ligne extends ObjetGraphique { return (double)ZoneDessin.largeur / nbSegments; } - // Calcul du pas dans le noise : unique endroit où cette logique est définie private double getNoiseStep() { return GetLargeurSegment() / gestionnaireNiveau.getNoiseFrequence(); }