game over ok
This commit is contained in:
@@ -1,42 +1,30 @@
|
|||||||
### --- Java / Compilation Générique --- ###
|
### --- Java / JVM (Fichiers de compilation) ---
|
||||||
*.class
|
|
||||||
*.log
|
|
||||||
*.ctxt
|
|
||||||
*.mtj.tmp/
|
|
||||||
*.jar
|
|
||||||
*.war
|
|
||||||
*.nar
|
|
||||||
*.ear
|
|
||||||
*.zip
|
|
||||||
*.tar.gz
|
|
||||||
*.rar
|
|
||||||
*.idea
|
|
||||||
*.out
|
|
||||||
|
|
||||||
### --- Dossiers de Build --- ###
|
|
||||||
target/
|
|
||||||
bin/
|
bin/
|
||||||
build/
|
build/
|
||||||
out/
|
out/
|
||||||
dist/
|
target/
|
||||||
|
*.class
|
||||||
|
*.jar
|
||||||
|
*.war
|
||||||
|
*.ear
|
||||||
|
|
||||||
### --- IntelliJ IDEA --- ###
|
### --- IntelliJ IDEA ---
|
||||||
.idea/
|
.idea/
|
||||||
*.iws
|
.out/
|
||||||
*.iml
|
*.iml
|
||||||
|
*.iws
|
||||||
*.ipr
|
*.ipr
|
||||||
out/
|
# On garde parfois .idea/runConfigurations si on veut partager les configs de lancement,
|
||||||
# Si vous utilisez le plugin Task d'IntelliJ
|
# mais dans le doute, mieux vaut tout ignorer.
|
||||||
.idea/tasks.xml
|
|
||||||
# Si vous utilisez des dictionnaires personnels
|
|
||||||
.idea/dictionaries
|
|
||||||
# On ignore les fichiers de cache et les logs d'indexation
|
|
||||||
.idea/libraries/
|
|
||||||
.idea/shelf/
|
|
||||||
.idea/workspace.xml
|
|
||||||
.idea/modules.xml
|
|
||||||
|
|
||||||
### --- Logs et Temp --- ###
|
### --- Antigravity / Environnements locaux ---
|
||||||
|
# Dossiers de build spécifiques et logs
|
||||||
|
.antigravity/
|
||||||
|
logs/
|
||||||
*.log
|
*.log
|
||||||
|
temp/
|
||||||
tmp/
|
tmp/
|
||||||
temp/
|
|
||||||
|
### --- Système / OS ---
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -124,8 +124,4 @@ public class Cercle extends ObjetGraphique{ // il s'agit plutôt d'arcs de cercl
|
|||||||
}
|
}
|
||||||
y+=depY;
|
y+=depY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ public class Jeu implements KeyListener, ActionListener{
|
|||||||
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
|
|
||||||
// Démarrage du timer, qui rythmera l'animation
|
// Démarrage du timer, qui rythmera l'animation
|
||||||
horloge = new Timer(20, this);
|
horloge = new Timer(40, this);
|
||||||
horloge.start();
|
horloge.start();
|
||||||
|
|
||||||
demiCercleArriere.setCouleur(new Color(0.8f, 0.0f, 0.0f));
|
demiCercleArriere.setCouleur(new Color(0.8f, 0.0f, 0.0f));
|
||||||
@@ -139,6 +139,18 @@ public class Jeu implements KeyListener, ActionListener{
|
|||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
ecran.traiterBoucleAnimation();
|
ecran.traiterBoucleAnimation();
|
||||||
|
|
||||||
|
double yLigne = laligne.getHauteurLigneA(400);
|
||||||
|
double yCercle = demiCercleAvant.getY();
|
||||||
|
|
||||||
|
if (Math.abs(yLigne - yCercle) > 30) {
|
||||||
|
gameOver();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void gameOver() {
|
||||||
|
horloge.stop(); // On arrête le Timer
|
||||||
|
ecran.setGameOver(true); // On prévient la zone de dessin
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public class Ligne extends ObjetGraphique{// Hérite de la classe ObjetGraphique
|
|||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
public Ligne(){
|
public Ligne(){
|
||||||
// Valeurs initiales pour la position de la Ligne
|
// Valeurs initiales pour la position de la Ligne
|
||||||
double x = 800;
|
double x = 400;
|
||||||
double y = 200;
|
double y = 200;
|
||||||
|
|
||||||
double xCourant = x;
|
double xCourant = x;
|
||||||
@@ -93,4 +93,15 @@ public class Ligne extends ObjetGraphique{// Hérite de la classe ObjetGraphique
|
|||||||
s.setX(s.getX() - vitesseDefilement);
|
s.setX(s.getX() - vitesseDefilement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public double getHauteurLigneA(double xCercle) {
|
||||||
|
for (Segment s : listSegments) {
|
||||||
|
// Si le segment couvre la position X du cercle
|
||||||
|
if (xCercle >= s.getX() && xCercle <= (s.getX() + s.xLong)) {
|
||||||
|
// Calcul de l'interpolation linéaire pour trouver le Y exact sur le segment
|
||||||
|
double ratio = (xCercle - s.getX()) / s.xLong;
|
||||||
|
return s.getY() + (ratio * s.yLong);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1; // Hors de la ligne
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,6 @@
|
|||||||
package linea;
|
package linea;
|
||||||
|
|
||||||
import java.awt.BorderLayout;
|
import java.awt.*;
|
||||||
import java.awt.Color;
|
|
||||||
import java.awt.Dimension;
|
|
||||||
import java.awt.Graphics;
|
|
||||||
import java.awt.Graphics2D;
|
|
||||||
import java.awt.RenderingHints;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
@@ -22,6 +17,8 @@ public class ZoneDessin extends JPanel { // hérite d'une classe du frameWork st
|
|||||||
|
|
||||||
// un booleen qui permet d'arreter l'animation (suspendre)
|
// un booleen qui permet d'arreter l'animation (suspendre)
|
||||||
protected boolean estArrete = false;
|
protected boolean estArrete = false;
|
||||||
|
|
||||||
|
protected boolean isGameOver = false;
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
@@ -96,9 +93,22 @@ public class ZoneDessin extends JPanel { // hérite d'une classe du frameWork st
|
|||||||
for (ObjetGraphique obj : listeObjets){
|
for (ObjetGraphique obj : listeObjets){
|
||||||
obj.Afficher(g);
|
obj.Afficher(g);
|
||||||
}
|
}
|
||||||
// à compléter
|
if (isGameOver) {
|
||||||
|
g2D.setColor(new Color(0, 0, 0, 150)); // Fond noir transparent
|
||||||
|
g2D.fillRect(0, 0, getWidth(), getHeight());
|
||||||
|
|
||||||
|
g2D.setColor(Color.WHITE);
|
||||||
|
g2D.setFont(new Font("Arial", Font.BOLD, 50));
|
||||||
|
String msg = "GAME OVER";
|
||||||
|
int largeurTexte = g2D.getFontMetrics().stringWidth(msg);
|
||||||
|
g2D.drawString(msg, (getWidth() - largeurTexte) / 2, getHeight() / 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGameOver(boolean state) {
|
||||||
|
this.isGameOver = state;
|
||||||
|
repaint();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user