commentaires ajoutés
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user