From 0dc6f2f3a2d549173ea77864631020834a6c81f3 Mon Sep 17 00:00:00 2001 From: Louis <malterre.louis@laposte.net> Date: Sat, 5 Nov 2022 13:24:15 +0100 Subject: [PATCH] deplacements du peros (j'etais entrain de la faire juste je voulais gerer les sauts avant de commit) --- MAVENProject/PlanUML.puml | 5 ++- .../src/main/java/entity/Character.java | 40 +++++++++++++++---- .../main/java/environnement/Coordonnees.java | 8 ---- .../src/main/java/environnement/Physique.java | 2 +- MAVENProject/src/main/java/jeu/Jeu.java | 26 ++++++++++-- MAVENProject/src/main/java/jeu/Painter.java | 13 +++--- 6 files changed, 68 insertions(+), 26 deletions(-) diff --git a/MAVENProject/PlanUML.puml b/MAVENProject/PlanUML.puml index 4bde9d3..1864a67 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 afec980..ec252f7 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 949fa25..9ae4f99 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 340dc8e..e6dae14 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 2d8538c..428478c 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 e0cd262..aed8aee 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); } -- GitLab