Jeu fonctionnel

This commit is contained in:
2026-02-03 15:36:11 +01:00
parent f297b3d715
commit 71a2eac8b2
19 changed files with 74 additions and 20 deletions

10
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,10 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Environment-dependent path to Maven home directory
/mavenHomeManager.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

1
.idea/.name generated Normal file
View File

@@ -0,0 +1 @@
ObjetGraphique.java

6
.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_24" default="true" project-jdk-name="24" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Projet_DEV.iml" filepath="$PROJECT_DIR$/Projet_DEV.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

11
Projet_DEV.iml Normal file
View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@@ -10,6 +10,8 @@
*.zip *.zip
*.tar.gz *.tar.gz
*.rar *.rar
*.idea
*.out
### --- Dossiers de Build --- ### ### --- Dossiers de Build --- ###
target/ target/

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -70,6 +70,7 @@ public class Cercle extends ObjetGraphique{ // il s'agit plutôt d'arcs de cercl
// de la vitesse de répétition du clavier // de la vitesse de répétition du clavier
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
public void Monter(){ public void Monter(){
montee = true; montee = true;
} }

View File

@@ -23,6 +23,7 @@ public class Jeu implements KeyListener, ActionListener{
// un qui passera dessus // un qui passera dessus
protected Cercle demiCercleAvant = new Cercle(90,-180); // celui qui est sur la ligne protected Cercle demiCercleAvant = new Cercle(90,-180); // celui qui est sur la ligne
protected Cercle demiCercleArriere = new Cercle(90,180); // celui qui est derrière la ligne protected Cercle demiCercleArriere = new Cercle(90,180); // celui qui est derrière la ligne
Ligne laligne = new Ligne();
// A FAIRE : ajouter les objets graphiques manquants, s'il y en a // A FAIRE : ajouter les objets graphiques manquants, s'il y en a
@@ -46,12 +47,10 @@ public class Jeu implements KeyListener, ActionListener{
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
public Jeu(){ public Jeu(){
// Gestion du score : a réactiver en fin de TP, inutile au début // Gestion du score : a réactiver en fin de TP, inutile au début
/*
labScore = new JLabel(); labScore = new JLabel();
labScore.setText("<html><h3>score : 0</h3></html>"); labScore.setText("<html><h3>score : 0</h3></html>");
labScore.setBounds(20, 0, 200, 50); labScore.setBounds(20, 0, 200, 50);
ecran.add(labScore); ecran.add(labScore);
*/
} }
@@ -111,7 +110,6 @@ public class Jeu implements KeyListener, ActionListener{
// Création d'une fenêtre // Création d'une fenêtre
JFrame fenetre = new JFrame(); JFrame fenetre = new JFrame();
Ligne laligne = new Ligne();
ecran.ajouterObjet(demiCercleArriere); ecran.ajouterObjet(demiCercleArriere);
ecran.ajouterObjet(demiCercleAvant); ecran.ajouterObjet(demiCercleAvant);
ecran.ajouterObjet(laligne); ecran.ajouterObjet(laligne);
@@ -127,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(40, this); horloge = new Timer(20, 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));
@@ -140,7 +138,7 @@ public class Jeu implements KeyListener, ActionListener{
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
ecran.traiterBoucleAnimation();
} }
} }

View File

@@ -36,19 +36,26 @@ public class Ligne extends ObjetGraphique{// Hérite de la classe ObjetGraphique
// Valeurs initiales pour la position de la Ligne // Valeurs initiales pour la position de la Ligne
double x = 800; double x = 800;
double y = 200; double y = 200;
double dx,dy;
double xCourant = x;
double yCourant = y;
double dx = 0,dy=0;
// Création de la liste de segments qui composent la ligne // Création de la liste de segments qui composent la ligne
Segment s; Segment s = new Segment(xCourant,yCourant,dx,dy);
for (int i=0; i<nbSegments; i++){ for (int i=0; i<nbSegments; i++){
// définition d'un nouveau segment // définition d'un nouveau segment
dx = Math.random()*20+80; dx = (Math.random()*20)+80;
dy = Math.random()*40-20; dy = (Math.random()*60)-30;
s = new Segment(x,y,dx,dy); s = new Segment(x,y,dx,dy);
s.setCouleur(new Color(0.2f,0.2f,0.2f)); s.setCouleur(new Color(0.2f,0.2f,0.2f));
x+=dx; x+=dx;
y+=dy; y+=dy;
listSegments.add(s);
} }
} }
@@ -74,11 +81,16 @@ public class Ligne extends ObjetGraphique{// Hérite de la classe ObjetGraphique
// Redéfinition de la méthode Animer, spécifiquement pour la classe Ligne // Redéfinition de la méthode Animer, spécifiquement pour la classe Ligne
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
@Override @Override
public void Animer() { void Animer() {
// On déplace chaque segment vers la gauche (vitesse arbitraire de 5)
double vitesseDefilement = 5.0;
// Principe : // On met à jour le x de la ligne (utilisé pour le calcul de position)
// on parcourt tous les segments et on décale chacun de 10 pixels (par exemple) this.x -= vitesseDefilement;
// vers la gauche
// On répercute sur chaque segment
for (Segment s : listSegments) {
s.setX(s.getX() - vitesseDefilement);
}
} }
} }

View File

@@ -15,7 +15,6 @@ abstract class ObjetGraphique {
// Position // Position
protected double x; protected double x;
protected double y; protected double y;
protected Color couleur = new Color(0.0f,0.2f,0.2f); protected Color couleur = new Color(0.0f,0.2f,0.2f);

View File

@@ -55,5 +55,5 @@ public class Segment extends ObjetGraphique { // Hérite de la classe ObjetGraph
} }
public void setX(double x) { this.x = x; }
} }