init 4: encodage udpt
This commit is contained in:
131
linea/Cercle.java
Normal file
131
linea/Cercle.java
Normal file
@@ -0,0 +1,131 @@
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user