diff --git a/src/Cercle.java b/src/Cercle.java index 54277a9..492c509 100644 --- a/src/Cercle.java +++ b/src/Cercle.java @@ -5,7 +5,8 @@ import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Arc2D; -public class Cercle extends ObjetGraphique { // il s'agit plutôt d'arcs de cercle +// Gère l'affichage et le déplacement du demi-cercle +public class Cercle extends ObjetGraphique { protected double rayon = 50; protected double depY = 0; @@ -95,17 +96,18 @@ public class Cercle extends ObjetGraphique { // il s'agit plutôt d'arcs de cerc y += vitesse; } + // Recadre le cercle dans la ligne si il le dépasse public void ResterDansLigne(Ligne li) { double collisionHautPos = y + rayon; double collisionBasPos = y - rayon; double yLigne = li.GetHauteurPointCercle(); - if (yLigne < collisionBasPos) { + if (yLigne < collisionBasPos) { // Dépassement par le bas y = yLigne + rayon; if (vitesse > 0) vitesse = 0; } - if (yLigne > collisionHautPos) { + if (yLigne > collisionHautPos) {// Dépassement par le haut y = yLigne - rayon; if (vitesse < 0) vitesse = 0; diff --git a/src/Joueur.java b/src/Joueur.java index c55498f..e6ecc0a 100644 --- a/src/Joueur.java +++ b/src/Joueur.java @@ -2,6 +2,7 @@ package linea; import java.awt.Color; +// Gère le fonctionnement du joueur (vie, collision, déplacement) public class Joueur { protected Cercle demiCercleAvant; @@ -33,6 +34,7 @@ public class Joueur { appliquerCouleurs(); } + // Gère les contrôles du joueur public void appliquerTouche(int keyCode, boolean pressed) { if (estMort) return; @@ -69,6 +71,7 @@ public class Joueur { demiCercleArriere.setRayon(rayon); } + //Appelé chaque frame et permet d'avancer le timer d'invincibilité et de mettre à jour l'effet visuel public void mettreAJourInvincibilite() { if (estMort) { demiCercleAvant.setCouleur(new Color(0, 0, 0, 0)); diff --git a/src/Ligne.java b/src/Ligne.java index 3bc262a..bb1a5f4 100644 --- a/src/Ligne.java +++ b/src/Ligne.java @@ -60,6 +60,7 @@ public class Ligne extends ObjetGraphique { return GetLargeurSegment() / gestionnaireNiveau.getNoiseFrequence(); } + // Quand un segment sort de l'écran, génère un nouveau segment à la fin de la ligne. protected Segment CreerSegmentSuivant(){ double noiseStep = getNoiseStep(); @@ -74,6 +75,7 @@ public class Ligne extends ObjetGraphique { return s; } + // Calcule la hauteur de la ligne à un point X. protected double CalculerY(double noisePos){ double limiteHaut = gestionnaireNiveau.getLimiteHaut(); double limiteBas = gestionnaireNiveau.getLimiteBas(); @@ -118,6 +120,7 @@ public class Ligne extends ObjetGraphique { UpdateSegments(); } + // Permet de réutiliser les segments sortis de l'écran au debut private void UpdateSegments(){ if (dernierSegment == null) throw new RuntimeException("dernierSegment n'existe pas"); @@ -125,7 +128,7 @@ public class Ligne extends ObjetGraphique { for (int i = 0; i < listeSegments.size(); i++) { Segment s = listeSegments.get(i); - if (s.x + s.xLong < 0) { + if (s.x + s.xLong < 0) { // le segment est ENTIEREMENT hors de l'écran Segment nouveauSegment = CreerSegmentSuivant(); nouveauSegment.x = dernierSegment.x + dernierSegment.xLong; listeSegments.set(i, nouveauSegment); @@ -136,6 +139,7 @@ public class Ligne extends ObjetGraphique { } } + // Renvoie la hauteur à laquelle doit etre le cercle. Utilisé pour la collision public double GetHauteurPointCercle(){ double t = (400 - SegCourant.x) / SegCourant.xLong; diff --git a/src/NoiseGenerator.java b/src/NoiseGenerator.java index 5f8c1b3..670fd10 100644 --- a/src/NoiseGenerator.java +++ b/src/NoiseGenerator.java @@ -109,11 +109,7 @@ public class NoiseGenerator { return value / initialSize; } - /** - * Noise 1D avec nombre d'octaves controle. - * 1 octave = lisse, utilise tout le range [-1, 1]. - * Plus d'octaves = plus de detail/jitter, mais converge vers 0. - */ + // Seule fonction publique utilisée, génère une valeur de -1 à 1 à un point x. public double noise(double x, int octaves) { double value = 0.0; double size = default_size;