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
*.tar.gz
*.rar
*.idea
*.out
### --- Dossiers de Build --- ###
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

@@ -69,7 +69,8 @@ public class Cercle extends ObjetGraphique{ // il s'agit plutôt d'arcs de cercl
// -> le booléen permet de ne plus être tributaire
// de la vitesse de répétition du clavier
//-------------------------------------------------------------------------
public void Monter(){
public void Monter(){
montee = true;
}

View File

@@ -23,6 +23,7 @@ public class Jeu implements KeyListener, ActionListener{
// un qui passera dessus
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
Ligne laligne = new Ligne();
// A FAIRE : ajouter les objets graphiques manquants, s'il y en a
@@ -46,12 +47,10 @@ public class Jeu implements KeyListener, ActionListener{
//-------------------------------------------------------------------------
public Jeu(){
// Gestion du score : a réactiver en fin de TP, inutile au début
/*
labScore = new JLabel();
labScore.setText("<html><h3>score : 0</h3></html>");
labScore.setBounds(20, 0, 200, 50);
ecran.add(labScore);
*/
}
@@ -111,7 +110,6 @@ public class Jeu implements KeyListener, ActionListener{
// Création d'une fenêtre
JFrame fenetre = new JFrame();
Ligne laligne = new Ligne();
ecran.ajouterObjet(demiCercleArriere);
ecran.ajouterObjet(demiCercleAvant);
ecran.ajouterObjet(laligne);
@@ -127,7 +125,7 @@ public class Jeu implements KeyListener, ActionListener{
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Démarrage du timer, qui rythmera l'animation
horloge = new Timer(40, this);
horloge = new Timer(20, this);
horloge.start();
demiCercleArriere.setCouleur(new Color(0.8f, 0.0f, 0.0f));
@@ -140,7 +138,7 @@ public class Jeu implements KeyListener, ActionListener{
//-------------------------------------------------------------------------
@Override
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
double x = 800;
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
Segment s;
Segment s = new Segment(xCourant,yCourant,dx,dy);
for (int i=0; i<nbSegments; i++){
// définition d'un nouveau segment
dx = Math.random()*20+80;
dy = Math.random()*40-20;
dx = (Math.random()*20)+80;
dy = (Math.random()*60)-30;
s = new Segment(x,y,dx,dy);
s.setCouleur(new Color(0.2f,0.2f,0.2f));
x+=dx;
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
//-------------------------------------------------------------------------
@Override
public void Animer() {
// Principe :
// on parcourt tous les segments et on décale chacun de 10 pixels (par exemple)
// vers la gauche
void Animer() {
// On déplace chaque segment vers la gauche (vitesse arbitraire de 5)
double vitesseDefilement = 5.0;
// On met à jour le x de la ligne (utilisé pour le calcul de position)
this.x -= vitesseDefilement;
// On répercute sur chaque segment
for (Segment s : listSegments) {
s.setX(s.getX() - vitesseDefilement);
}
}
}

View File

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

View File

@@ -54,6 +54,6 @@ public class Segment extends ObjetGraphique { // Hérite de la classe ObjetGraph
// TODO Auto-generated method stub
}
public void setX(double x) { this.x = x; }
}