diff --git a/MAVENProject/PlanUML.puml b/MAVENProject/PlanUML.puml index 4bde9d3363365288fdefe841dfe5729bbba01ae9..1864a6708923f3486bf93f6a85eda2830d13d8c1 100644 --- a/MAVENProject/PlanUML.puml +++ b/MAVENProject/PlanUML.puml @@ -117,5 +117,8 @@ class jeu.Jeu{ + void evolve(Cmd) + boolean isFinished() } - +class environment.Physique{ +- double g +- double lambda +} @enduml \ No newline at end of file diff --git a/MAVENProject/src/main/java/entity/Character.java b/MAVENProject/src/main/java/entity/Character.java index afec9801c87abdd4644aa6a03743079900e5904c..ec252f787e7afa46d57a7299bbcb7a74f65e3977 100644 --- a/MAVENProject/src/main/java/entity/Character.java +++ b/MAVENProject/src/main/java/entity/Character.java @@ -4,8 +4,8 @@ import environnement.Coordonnees; import environnement.Physique; public class Character extends Entity{ - Coordonnees coord; - double vitesseMax; // vitesse max + //Coordonnees coord; + //double vitesseMax; // vitesse max double vitesseActuX = 0; // vitesse actuelle supposée nulle au départ double vitesseActuZ = 0; double m; @@ -21,14 +21,16 @@ public class Character extends Entity{ //on actualise les positions double newX,newZ; - newX = -Physique.lambda/m*(vitesseActuX - commandX)*Math.exp(-Physique.lambda/m*delta) + commandX*delta + coord.getX(); - newZ = ((alpha-1)*Physique.g + commandZ)/2*delta*delta + vitesseActuZ*delta + coord.getZ(); - coord = new Coordonnees(newX, newZ); + newX = -Physique.lambda/m*(vitesseActuX - commandX/Physique.lambda)*Math.exp(-Physique.lambda*delta/m) + commandX*delta + coord.getX(); + newZ = ((1-alpha)*Physique.g - commandZ/m)/2*delta*delta + vitesseActuZ*delta + coord.getZ(); + coord = new Coordonnees(newX, newZ); // repere ou la hauteur augmente vers le bas, a revoir //on actualise les vitesses - vitesseActuX = (vitesseActuX - commandX)*Math.exp(-Physique.lambda*delta/m); - vitesseActuX += commandX; - vitesseActuZ += ((alpha-1) + commandZ)*Physique.g; + vitesseActuX = (vitesseActuX - commandX/Physique.lambda)*Math.exp(-delta*Physique.lambda/m); + vitesseActuX += commandX/Physique.lambda; + vitesseActuZ = vitesseActuZ + ((1-alpha)*Physique.g - commandZ/m)*delta; + //vitesseActuZ = -vitesseActuZ; + } @@ -36,4 +38,26 @@ public class Character extends Entity{ public void attaque(){ } + + public Coordonnees getCoord() { + return coord; + } + + public double getVitesseMax() { + return vitesseMax; + } + + public double getVitesseActuX() { + return vitesseActuX; + } + + public double getVitesseActuZ() { + return vitesseActuZ; + } + + public double getM() { + return m; + } + + } diff --git a/MAVENProject/src/main/java/environnement/Coordonnees.java b/MAVENProject/src/main/java/environnement/Coordonnees.java index 949fa25fb4461c9aa148d98dc4bce493a635049e..9ae4f99c978c169741d0414b565d5293bc32df66 100644 --- a/MAVENProject/src/main/java/environnement/Coordonnees.java +++ b/MAVENProject/src/main/java/environnement/Coordonnees.java @@ -1,7 +1,5 @@ package environnement; -import entity.Character; -import entity.Entity; public class Coordonnees { private double x; @@ -18,12 +16,6 @@ public class Coordonnees { return 0; } - public void testOrdiVerdun(){ - Entity e = new Character(this, 10,100); - e.attaque(); //juste les msg d'erreurs me triggeraient - System.out.println("test"); - } - public double getX() { return x; } diff --git a/MAVENProject/src/main/java/environnement/Physique.java b/MAVENProject/src/main/java/environnement/Physique.java index 340dc8e8b65da780ace7b27cee08165e79895130..e6dae14960f74878a1f59011687dedef1cca4715 100644 --- a/MAVENProject/src/main/java/environnement/Physique.java +++ b/MAVENProject/src/main/java/environnement/Physique.java @@ -2,5 +2,5 @@ package environnement; public class Physique { public static final double g = 9.81; // pesanteur - public static final double lambda = 3; // coefficient de frottements + public static final double lambda = 1; // coefficient de frottements } diff --git a/MAVENProject/src/main/java/jeu/Jeu.java b/MAVENProject/src/main/java/jeu/Jeu.java index 2d8538ca89f09028ba7dc8df244f4ecfca041956..428478ca6cf2829747b1ffa70d5e5fa42dac97db 100644 --- a/MAVENProject/src/main/java/jeu/Jeu.java +++ b/MAVENProject/src/main/java/jeu/Jeu.java @@ -5,7 +5,7 @@ import engine.Game; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; -import static jeu.Painter.coordonnees; +import static jeu.Painter.charac; public class Jeu implements Game{ @@ -26,18 +26,38 @@ public class Jeu implements Game{ @Override public void evolve(Cmd commande) { System.out.println("Execute "+commande); + System.out.println(charac.getCoord().getX()); + System.out.println(charac.getCoord().getZ()); + double comX,comZ; + int a = 1; + comX = 0; + comZ = 0; + switch (commande) { case LEFT: - coordonnees.evolveX(-2); + comX = -charac.getVitesseMax(); + //coordonnees.evolveX(-2); break; case RIGHT: - coordonnees.evolveX(2); + comX = charac.getVitesseMax(); + //coordonnees.evolveX(2); break; case JUMP: + comZ = 3*charac.getVitesseMax(); + if (charac.getCoord().getZ() < 80)a = 0; break; case IDLE: + if (charac.getCoord().getZ() < 80){ //a retoucher, j'ai besoin d'autres choses pour avancer + a = 0; + } + else{ + a = 1; + } break; + + } + charac.deplacements(comX, comZ, a); } @Override diff --git a/MAVENProject/src/main/java/jeu/Painter.java b/MAVENProject/src/main/java/jeu/Painter.java index e0cd262084e331cb555d436df5f2e0afedfc89fd..aed8aee6452c2045c1fe5d41a130b8f92c1f6e64 100644 --- a/MAVENProject/src/main/java/jeu/Painter.java +++ b/MAVENProject/src/main/java/jeu/Painter.java @@ -4,23 +4,26 @@ import engine.GamePainter; import environnement.Coordonnees; import java.awt.*; import java.awt.image.BufferedImage; +import entity.Character; public class Painter implements GamePainter{ protected static final int WIDTH = 1000; - protected static final int HEIGHT = 100; - public static Coordonnees coordonnees; + protected static final int HEIGHT = 1000; + public static Character charac; public Painter() { - coordonnees = new Coordonnees(20,80); + Coordonnees coordonnees = new Coordonnees(20,80); + + charac = new Character(coordonnees, 36, 50000); } @Override public void draw(BufferedImage im) { Graphics2D crayon = (Graphics2D) im.getGraphics(); crayon.setColor(Color.blue); - int x = new Double(coordonnees.getX()).intValue(); - int y = new Double(coordonnees.getZ()).intValue(); + int x = (int) charac.getCoord().getX(); + int y = (int) charac.getCoord().getZ(); crayon.fillOval(x,y,10,10); }