diff --git a/Cercle.java b/Cercle.java deleted file mode 100644 index a88d31e..0000000 --- a/Cercle.java +++ /dev/null @@ -1,131 +0,0 @@ -package linea; - -import java.awt.BasicStroke; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Stroke; -import java.awt.geom.Arc2D; - -public class Cercle extends ObjetGraphique{ // il s'agit plutôt d'arcs de cercle - // Hérite de la classe ObjetGraphique - // Ne pas oublier qu'il y a des propriétés et méthodes reçues par l'héritage - - - //------------------------------------------------------------------------- - // PROPRIETES - //------------------------------------------------------------------------- - protected double rayon = 30; - protected double depY = 0; // déplacement - - // début et fin de l'arc, en degrés - protected double debut = 0; - protected double fin = 360; - - // Est-ce que le joueur est en train d'appuyer sur "up" - protected boolean montee = false; - - // Vitesse du cercle - protected double vitesse = -1.0; - - // Un pas pour l'application des forces, permet de régler - // un peu la jouabilité - protected double pas = 0.2; - - // Valeur de la force (norme) appliquée lorsque le joueur appuie sur up - protected double impulsion = 25; - - - //------------------------------------------------------------------------- - // METHODES - //------------------------------------------------------------------------- - - //------------------------------------------------------------------------- - // Constructeurs de la classe - //------------------------------------------------------------------------- - public Cercle(){ - x=400; - y=200; - } - - public Cercle(double debutArc, double finArc){ - x=400; - y=200; - debut = debutArc; - fin = finArc; - } - - - //------------------------------------------------------------------------- - // Méthode d'accès en lecture au rayon, peut être utile - // par exemple pour la classe qui vérifiera si la ligne passe dans le - // cercle - //------------------------------------------------------------------------- - public double getRayon(){ - return rayon; - } - - - //------------------------------------------------------------------------- - // Méthode qui note que up a été appuyée - // -> le booléen permet de ne plus être tributaire - // de la vitesse de répétition du clavier - //------------------------------------------------------------------------- - public void Monter(){ - montee = true; - } - - - //------------------------------------------------------------------------- - // Méthode qui note que up a été relâchée - //------------------------------------------------------------------------- - public void ArreterMonter(){ - montee = false; - } - - - - //------------------------------------------------------------------------- - // Redéfinition de la méthode Afficher, spécifiquement pour la classe - //------------------------------------------------------------------------- - @Override - void Afficher(Graphics g) { - // choix de la couleur et de l'épaisseur - Graphics2D g2D = (Graphics2D) g; - g2D.setStroke(new BasicStroke(5.0f)); - g.setColor(this.couleur); - - // dessin de l'arc - g2D.draw(new Arc2D.Double(x-rayon/2, y-rayon, rayon, rayon*2, debut, fin, Arc2D.OPEN)); - } - - - //------------------------------------------------------------------------- - // Redéfinition de la méthode Animer, spécifiquement pour la classe - //------------------------------------------------------------------------- - @Override - void Animer() { - // pas est à prendre comme un "delta t" - - // chute libre - vitesse = vitesse + 9.81 * pas; - - // impulsion - if (montee==true) { - vitesse = vitesse - impulsion *pas; - } - - depY = 1/2 * 9.81 + vitesse * pas; - - if (depY<-10) { - depY=-10; - } - if (depY>10){ - depY =10; - } - y+=depY; - } - - - - -} diff --git a/Jeu.java b/Jeu.java deleted file mode 100644 index a49ef86..0000000 --- a/Jeu.java +++ /dev/null @@ -1,145 +0,0 @@ -package linea; - -import java.awt.Color; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.KeyEvent; -import java.awt.event.KeyListener; - -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.Timer; - -public class Jeu implements KeyListener, ActionListener{ - //------------------------------------------------------------------------- - // PROPRIETES - //------------------------------------------------------------------------- - - // Ecran : instance de ZoneDessin, qui contiendra tous les objets graphiques - // et les animera - protected ZoneDessin ecran = new ZoneDessin(); - - // Le cercle : en fait 2 demis-cercles, un qui passera sous la ligne - // 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 - - // A FAIRE : ajouter les objets graphiques manquants, s'il y en a - - // Timer : un objet qui émet des événements à un intervalle choisi, - // il sert à donner le pas de l'animation - protected Timer horloge; - - // Une variable qui contiendra le score - protected double score=0; - - // un label qui servira à afficher le score - protected JLabel labScore; - - - //------------------------------------------------------------------------- - // METHODES - //------------------------------------------------------------------------- - - //------------------------------------------------------------------------- - // Constructeur de la classe - //------------------------------------------------------------------------- - public Jeu(){ - // Gestion du score : a réactiver en fin de TP, inutile au début - /* - labScore = new JLabel(); - labScore.setText("

score : 0

"); - labScore.setBounds(20, 0, 200, 50); - ecran.add(labScore); - */ - } - - - //------------------------------------------------------------------------- - // Méthodes qu'il faut implémenter pour être - // conforme à un KeyListener - //------------------------------------------------------------------------- - - //------------------------------------------------------------------------- - // Appui sur une touche - // -> l'événement est émis lorsqu'on appuie, puis selon le rythme de - // répétition du clavier - //------------------------------------------------------------------------- - @Override - public void keyPressed(KeyEvent e){ - // keyCode 38 : up - // keyCode 40 : down - int keyCode = e.getKeyCode(); - - if (keyCode==38){ // touche "flèche vers le haut" - // On demande aux deux demi-cercle de "monter" - demiCercleAvant.Monter(); - demiCercleArriere.Monter(); - } - } - - //------------------------------------------------------------------------- - // Relâchement de la touche - //------------------------------------------------------------------------- - @Override - public void keyReleased(KeyEvent e){ - // keyCode 38 : up - // keyCode 40 : down - int keyCode = e.getKeyCode(); - - if (keyCode==38){ - // On demande aux deux demi-cercle "d'arrêter de monter" - demiCercleAvant.ArreterMonter(); - demiCercleArriere.ArreterMonter(); - } - } - - //------------------------------------------------------------------------- - // Une méthode que nous n'utilisons pas - //------------------------------------------------------------------------- - @Override - public void keyTyped(KeyEvent e) { - // TODO Auto-generated method stub - - } - - //------------------------------------------------------------------------- - // Démarrage du jeu : - // création de diverses instances et - //------------------------------------------------------------------------- - public void demarrer(){ - // Création d'une fenêtre - JFrame fenetre = new JFrame(); - - // A FAIRE : - // placer dans l'instance de l'écran tous les objets graphiques nécessaires - // par exemple : ecran.ajouterObjet(demiCerleArriere); - - - // on indique que c'est le jeu qui traitera les appuis sur une touche - ecran.addKeyListener(this); - ecran.setFocusable(true); - fenetre.setContentPane(ecran); - fenetre.pack(); - fenetre.setLocation(100, 100); - fenetre.setVisible(true); - fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - - // Démarrage du timer, qui rythmera l'animation - horloge = new Timer(40, this); - horloge.start(); - - // A FAIRE : - // donner la couleur des 2 demi-cercles, par exemple : demiCerleArriere.setCouleur(new Color(0.8f,0.0f,0.0f)); - } - - - //------------------------------------------------------------------------- - // Méthode appelée lorsqu'un événement timer se produit - //------------------------------------------------------------------------- - @Override - public void actionPerformed(ActionEvent e) { - - } - -} diff --git a/Ligne.java b/Ligne.java deleted file mode 100644 index ac5baf6..0000000 --- a/Ligne.java +++ /dev/null @@ -1,78 +0,0 @@ -package linea; - -import java.awt.BasicStroke; -import java.awt.Color; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.util.ArrayList; - -public class Ligne extends ObjetGraphique{// Hérite de la classe ObjetGraphique - // Ne pas oublier qu'il y a des propriétés et méthodes reçues par l'héritage - - //------------------------------------------------------------------------- - // PROPRIETES - //------------------------------------------------------------------------- - - // nb de Segments qui composent la ligne - protected int nbSegments = 400; - - // position du cercle, pour déterminer quel est le segment courant - protected double xCercle = 400; // à modifier - - // segment qui se trouve au niveau du cercle : on le mémorise pour accélérer les traitements - protected Segment SegCourant; - - - //------------------------------------------------------------------------- - // METHODES - //------------------------------------------------------------------------- - - //------------------------------------------------------------------------- - // Constructeur de la classe - //------------------------------------------------------------------------- - public Ligne(){ - // Valeurs initiales pour la position de la Ligne - double x = 800; - double y = 200; - double dx,dy; - - // Création de la liste de segments qui composent la ligne - Segment s; - for (int i=0; i