diff --git a/MAVENProject/src/main/java/entity/Character.java b/MAVENProject/src/main/java/entity/Character.java index c08c88553340fb3b12b0918c5949451dce350c30..afec9801c87abdd4644aa6a03743079900e5904c 100644 --- a/MAVENProject/src/main/java/entity/Character.java +++ b/MAVENProject/src/main/java/entity/Character.java @@ -1,18 +1,36 @@ package entity; import environnement.Coordonnees; +import environnement.Physique; public class Character extends Entity{ Coordonnees coord; - int vitesseMax; // vitesse max + double vitesseMax; // vitesse max + double vitesseActuX = 0; // vitesse actuelle supposée nulle au départ + double vitesseActuZ = 0; + double m; - public Character(Coordonnees c,int vitesseMax){ + public Character(Coordonnees c,int vitesseMax,double m){ super(c,vitesseMax); + this.m = m; } - public void deplacements(){ + 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); + + //on actualise les vitesses + vitesseActuX = (vitesseActuX - commandX)*Math.exp(-Physique.lambda*delta/m); + vitesseActuX += commandX; + vitesseActuZ += ((alpha-1) + commandZ)*Physique.g; + + } public void attaque(){ diff --git a/MAVENProject/src/main/java/environnement/Coordonnees.java b/MAVENProject/src/main/java/environnement/Coordonnees.java index 78857cbd2c12c73fbb62e6b9054862408bfaff23..79ac5425456fa6755fbb8b3449af7c7f084b992c 100644 --- a/MAVENProject/src/main/java/environnement/Coordonnees.java +++ b/MAVENProject/src/main/java/environnement/Coordonnees.java @@ -1,23 +1,36 @@ package environnement; -import java.lang.ProcessBuilder.Redirect.Type; - +import entity.Character; import entity.Entity; public class Coordonnees { - int x; - int z; + double x; + double z; - public Coordonnees(int x,int z){ - this.x = x; - this.z = z; + public Coordonnees(double newX,double newZ){ + this.x = newX; + this.z = newZ; } public static int distance(Object o1,Object o2){ - //if ((o1 instanceof Entity) || (o2 instanceof Entity))return Math.sqrt(Math.pow(o1.coord.x - o2.coord.x, 2) + Math.pow(o1.coord.y - o2.coord.y,2)); + //if (((o1 instanceof Entity) || (o1 instanceof Bloc)) && ((o2 instanceof Entity) || (o2 instanceof Bloc)))return Math.sqrt(Math.pow(o1.coord.x - o2.coord.x, 2) + Math.pow(o1.coord.y - o2.coord.y,2)); + //a retoucher selon le reste du programme 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; + } + + public double getZ() { + return z; + } + + } diff --git a/MAVENProject/src/main/java/environnement/Physique.java b/MAVENProject/src/main/java/environnement/Physique.java new file mode 100644 index 0000000000000000000000000000000000000000..340dc8e8b65da780ace7b27cee08165e79895130 --- /dev/null +++ b/MAVENProject/src/main/java/environnement/Physique.java @@ -0,0 +1,6 @@ +package environnement; + +public class Physique { + public static final double g = 9.81; // pesanteur + public static final double lambda = 3; // coefficient de frottements +} diff --git a/MAVENProject/target/classes/entity/Character.class b/MAVENProject/target/classes/entity/Character.class index 961cd825e992b33e19ad48ed340b6573797eac2d..3dec24c10c9c1448efe7e302ef63706d72ddde84 100644 Binary files a/MAVENProject/target/classes/entity/Character.class and b/MAVENProject/target/classes/entity/Character.class differ diff --git a/MAVENProject/target/classes/environnement/Coordonnees.class b/MAVENProject/target/classes/environnement/Coordonnees.class index b721665537e0d9c15b3ec8b086e1f46c8566c5db..ef4cf4dd0d7862a73273609c012c89c0112e5c0d 100644 Binary files a/MAVENProject/target/classes/environnement/Coordonnees.class and b/MAVENProject/target/classes/environnement/Coordonnees.class differ