From b21761b421591b5fad482fd94972d5eb53ff8a31 Mon Sep 17 00:00:00 2001 From: Azurlors <florianrichard2001@gmail.com> Date: Thu, 3 Nov 2022 16:52:00 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20du=20d=C3=A9placement=20du=20personnage?= =?UTF-8?q?.=20Cela=20ne=20fonctionne=20pas=20car=20il=20faut=20mettre=20l?= =?UTF-8?q?e=20syst=C3=A8me=20de=20double=20cr=C3=A9er=20par=20Louis=20en?= =?UTF-8?q?=20entier=20ce=20que=20j'ai=20par=20encore=20fait.=20Louis=20fa?= =?UTF-8?q?drat=20que=20tu=20expliques=20le=20fonctionnement=20de=20d?= =?UTF-8?q?=C3=A9placements.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MAVENProject/PlanUML.puml | 10 +++++-- .../src/main/java/entity/Character.java | 13 ++++---- MAVENProject/src/main/java/entity/Entity.java | 7 +++-- MAVENProject/src/main/java/jeu/Jeu.java | 30 +++++++++++++++++-- MAVENProject/src/main/java/jeu/Painter.java | 8 ++--- 5 files changed, 50 insertions(+), 18 deletions(-) diff --git a/MAVENProject/PlanUML.puml b/MAVENProject/PlanUML.puml index 4bde9d3..52d437e 100644 --- a/MAVENProject/PlanUML.puml +++ b/MAVENProject/PlanUML.puml @@ -90,9 +90,13 @@ class environment.Object { class environment.Obstacle{ } class environment.Coordonnees{ -+ int x -+ int z +- int x +- int z + {static} int distance(Object,Object) ++ double getX() ++ double getZ() ++ void evolveX(double var) ++ void evolveZ(double var) } @@ -118,4 +122,6 @@ class jeu.Jeu{ + boolean isFinished() } + + @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..eadc2b9 100644 --- a/MAVENProject/src/main/java/entity/Character.java +++ b/MAVENProject/src/main/java/entity/Character.java @@ -4,7 +4,7 @@ import environnement.Coordonnees; import environnement.Physique; public class Character extends Entity{ - Coordonnees coord; + double vitesseMax; // vitesse max double vitesseActuX = 0; // vitesse actuelle supposée nulle au départ double vitesseActuZ = 0; @@ -15,15 +15,16 @@ public class Character extends Entity{ this.m = m; } - + @Override public void deplacements(double commandX,double commandZ,int alpha){ // alpha indique si il est au sol ou non, il vaut 0 ou 1 en fonction double delta = 0.1; // pas de temps = 0.1s //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) * Math.exp(-Physique.lambda / m * delta)) + (commandX * delta) + this.getCoord().getX(); + newZ = ((alpha-1)*Physique.g + commandZ)/2*delta*delta + vitesseActuZ*delta + this.getCoord().getZ(); + this.getCoord().evolveX(newX); + this.getCoord().evolveZ(newZ); //on actualise les vitesses vitesseActuX = (vitesseActuX - commandX)*Math.exp(-Physique.lambda*delta/m); @@ -32,7 +33,7 @@ public class Character extends Entity{ } - + @Override public void attaque(){ } diff --git a/MAVENProject/src/main/java/entity/Entity.java b/MAVENProject/src/main/java/entity/Entity.java index d0c9da2..9091522 100644 --- a/MAVENProject/src/main/java/entity/Entity.java +++ b/MAVENProject/src/main/java/entity/Entity.java @@ -3,13 +3,16 @@ package entity; import environnement.Coordonnees; public abstract class Entity { - Coordonnees coord; + private Coordonnees coord; int vitesseMax; public Entity(Coordonnees c,int vitesseMax){ this.coord = c; this.vitesseMax = vitesseMax; } - public void deplacements(){} + public void deplacements(double commandX, double commandZ, int alpha){} public void attaque(){} + public Coordonnees getCoord(){ + return this.coord; + } // Pour retourner les coordonées } diff --git a/MAVENProject/src/main/java/jeu/Jeu.java b/MAVENProject/src/main/java/jeu/Jeu.java index 2d8538c..a48b83d 100644 --- a/MAVENProject/src/main/java/jeu/Jeu.java +++ b/MAVENProject/src/main/java/jeu/Jeu.java @@ -5,10 +5,19 @@ import engine.Game; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; -import static jeu.Painter.coordonnees; +import entity.Character; +import environnement.Coordonnees; + public class Jeu implements Game{ + public static Coordonnees coordonnees = new Coordonnees(20,80); + public static Character personnage = new Character(coordonnees,10,1); // pour simplifier les tests ce n'est pas de cette façon que le personnage sera créé à la fin + + public static double commandX; // pour la commande deplacements + + public static double commandZ; // pour la commande deplacements + public Jeu(String source) { BufferedReader helpReader; try { @@ -26,16 +35,31 @@ public class Jeu implements Game{ @Override public void evolve(Cmd commande) { System.out.println("Execute "+commande); + + System.out.println(coordonnees.getX()); // test pour debugger + System.out.println(coordonnees.getZ()); + System.out.println(personnage.getCoord().getX()); + switch (commande) { case LEFT: - coordonnees.evolveX(-2); + commandX = 1; // valeur arbitraire pour toutes les commendes X et Z Louis à toi de voir + commandZ = 0; + personnage.deplacements(commandX,commandZ,0); break; case RIGHT: - coordonnees.evolveX(2); + commandX = -1; + commandZ = 0; + personnage.deplacements(commandX,commandZ,0); break; case JUMP: + commandZ = 6; + commandX = 0; + personnage.deplacements(commandX,commandZ,0); break; case IDLE: + commandZ = 0; + commandX = 0; + personnage.deplacements(commandX,commandZ,0); break; } } diff --git a/MAVENProject/src/main/java/jeu/Painter.java b/MAVENProject/src/main/java/jeu/Painter.java index e0cd262..3ee2999 100644 --- a/MAVENProject/src/main/java/jeu/Painter.java +++ b/MAVENProject/src/main/java/jeu/Painter.java @@ -1,26 +1,24 @@ package jeu; import engine.GamePainter; -import environnement.Coordonnees; import java.awt.*; import java.awt.image.BufferedImage; +import static jeu.Jeu.coordonnees; public class Painter implements GamePainter{ protected static final int WIDTH = 1000; protected static final int HEIGHT = 100; - public static Coordonnees coordonnees; public Painter() { - coordonnees = new Coordonnees(20,80); } @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)Math.round(coordonnees.getX()); + int y = (int)Math.round(coordonnees.getZ()); crayon.fillOval(x,y,10,10); } -- GitLab