commentaires ajoutés
This commit is contained in:
@@ -5,7 +5,8 @@ import java.awt.Graphics;
|
|||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.geom.Arc2D;
|
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 rayon = 50;
|
||||||
protected double depY = 0;
|
protected double depY = 0;
|
||||||
@@ -95,17 +96,18 @@ public class Cercle extends ObjetGraphique { // il s'agit plutôt d'arcs de cerc
|
|||||||
y += vitesse;
|
y += vitesse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Recadre le cercle dans la ligne si il le dépasse
|
||||||
public void ResterDansLigne(Ligne li) {
|
public void ResterDansLigne(Ligne li) {
|
||||||
double collisionHautPos = y + rayon;
|
double collisionHautPos = y + rayon;
|
||||||
double collisionBasPos = y - rayon;
|
double collisionBasPos = y - rayon;
|
||||||
double yLigne = li.GetHauteurPointCercle();
|
double yLigne = li.GetHauteurPointCercle();
|
||||||
|
|
||||||
if (yLigne < collisionBasPos) {
|
if (yLigne < collisionBasPos) { // Dépassement par le bas
|
||||||
y = yLigne + rayon;
|
y = yLigne + rayon;
|
||||||
if (vitesse > 0)
|
if (vitesse > 0)
|
||||||
vitesse = 0;
|
vitesse = 0;
|
||||||
}
|
}
|
||||||
if (yLigne > collisionHautPos) {
|
if (yLigne > collisionHautPos) {// Dépassement par le haut
|
||||||
y = yLigne - rayon;
|
y = yLigne - rayon;
|
||||||
if (vitesse < 0)
|
if (vitesse < 0)
|
||||||
vitesse = 0;
|
vitesse = 0;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package linea;
|
|||||||
|
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
|
|
||||||
|
// Gère le fonctionnement du joueur (vie, collision, déplacement)
|
||||||
public class Joueur {
|
public class Joueur {
|
||||||
|
|
||||||
protected Cercle demiCercleAvant;
|
protected Cercle demiCercleAvant;
|
||||||
@@ -33,6 +34,7 @@ public class Joueur {
|
|||||||
appliquerCouleurs();
|
appliquerCouleurs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Gère les contrôles du joueur
|
||||||
public void appliquerTouche(int keyCode, boolean pressed) {
|
public void appliquerTouche(int keyCode, boolean pressed) {
|
||||||
if (estMort) return;
|
if (estMort) return;
|
||||||
|
|
||||||
@@ -69,6 +71,7 @@ public class Joueur {
|
|||||||
demiCercleArriere.setRayon(rayon);
|
demiCercleArriere.setRayon(rayon);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Appelé chaque frame et permet d'avancer le timer d'invincibilité et de mettre à jour l'effet visuel
|
||||||
public void mettreAJourInvincibilite() {
|
public void mettreAJourInvincibilite() {
|
||||||
if (estMort) {
|
if (estMort) {
|
||||||
demiCercleAvant.setCouleur(new Color(0, 0, 0, 0));
|
demiCercleAvant.setCouleur(new Color(0, 0, 0, 0));
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ public class Ligne extends ObjetGraphique {
|
|||||||
return GetLargeurSegment() / gestionnaireNiveau.getNoiseFrequence();
|
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(){
|
protected Segment CreerSegmentSuivant(){
|
||||||
double noiseStep = getNoiseStep();
|
double noiseStep = getNoiseStep();
|
||||||
|
|
||||||
@@ -74,6 +75,7 @@ public class Ligne extends ObjetGraphique {
|
|||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Calcule la hauteur de la ligne à un point X.
|
||||||
protected double CalculerY(double noisePos){
|
protected double CalculerY(double noisePos){
|
||||||
double limiteHaut = gestionnaireNiveau.getLimiteHaut();
|
double limiteHaut = gestionnaireNiveau.getLimiteHaut();
|
||||||
double limiteBas = gestionnaireNiveau.getLimiteBas();
|
double limiteBas = gestionnaireNiveau.getLimiteBas();
|
||||||
@@ -118,6 +120,7 @@ public class Ligne extends ObjetGraphique {
|
|||||||
UpdateSegments();
|
UpdateSegments();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Permet de réutiliser les segments sortis de l'écran au debut
|
||||||
private void UpdateSegments(){
|
private void UpdateSegments(){
|
||||||
|
|
||||||
if (dernierSegment == null) throw new RuntimeException("dernierSegment n'existe pas");
|
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++) {
|
for (int i = 0; i < listeSegments.size(); i++) {
|
||||||
|
|
||||||
Segment s = listeSegments.get(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();
|
Segment nouveauSegment = CreerSegmentSuivant();
|
||||||
nouveauSegment.x = dernierSegment.x + dernierSegment.xLong;
|
nouveauSegment.x = dernierSegment.x + dernierSegment.xLong;
|
||||||
listeSegments.set(i, nouveauSegment);
|
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(){
|
public double GetHauteurPointCercle(){
|
||||||
double t = (400 - SegCourant.x) / SegCourant.xLong;
|
double t = (400 - SegCourant.x) / SegCourant.xLong;
|
||||||
|
|
||||||
|
|||||||
@@ -109,11 +109,7 @@ public class NoiseGenerator {
|
|||||||
return value / initialSize;
|
return value / initialSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
// Seule fonction publique utilisée, génère une valeur de -1 à 1 à un point x.
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
public double noise(double x, int octaves) {
|
public double noise(double x, int octaves) {
|
||||||
double value = 0.0;
|
double value = 0.0;
|
||||||
double size = default_size;
|
double size = default_size;
|
||||||
|
|||||||
Reference in New Issue
Block a user