diff --git a/MAVENProject/PlanUML.puml b/MAVENProject/PlanUML.puml index 4bde9d3363365288fdefe841dfe5729bbba01ae9..52d437e22f1790b680fb0f8b517faba058855ba6 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 afec9801c87abdd4644aa6a03743079900e5904c..eadc2b9fe3a50ac531fbcf21bb8137b1e70b18eb 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 d0c9da22087bb567c35a0d221a1b8fbfab22a6b6..90915220e7af11d342c28608a12479643f969e7d 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 2d8538ca89f09028ba7dc8df244f4ecfca041956..a48b83d4afcb8b472b033ff9af21692908a13335 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 e0cd262084e331cb555d436df5f2e0afedfc89fd..3ee29990560cd44108e62306b556dc14474f9a0f 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); }