From bc591200eeee84bdc8077d1904983a906940e7af Mon Sep 17 00:00:00 2001
From: Louis <malterre.louis@laposte.net>
Date: Wed, 2 Nov 2022 17:01:42 +0100
Subject: [PATCH] physique et deplacement implementes, j'ai garde une feuille
 avec les equations physiques si jamais. LM

---
 .../src/main/java/entity/Character.java       |  24 +++++++++++++--
 .../main/java/environnement/Coordonnees.java  |  29 +++++++++++++-----
 .../src/main/java/environnement/Physique.java |   6 ++++
 .../target/classes/entity/Character.class     | Bin 537 -> 1187 bytes
 .../classes/environnement/Coordonnees.class   | Bin 763 -> 1092 bytes
 5 files changed, 48 insertions(+), 11 deletions(-)
 create mode 100644 MAVENProject/src/main/java/environnement/Physique.java

diff --git a/MAVENProject/src/main/java/entity/Character.java b/MAVENProject/src/main/java/entity/Character.java
index c08c885..afec980 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 78857cb..79ac542 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 0000000..340dc8e
--- /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
GIT binary patch
literal 1187
zcmX^0Z`VEs1_oOOH+BXlMh1b@ypqh4N`2>y#G=IHlGGx01{OvJUZ|)mSdx)}H90@O
zD20(h+9x%yEVC#-FE2GWHLpb986*tir50N=GH{h;mZTOJr}`#VFfuT@Ff#B!1ss!0
zN+VFYQH%_Xxr_{KHko;uC3cJq3L1Ef_H@w<V`N})&QD3@Vqj(v;9=ll5M*SK$E!y(
zjFW+pL70bulYs-o66Imwg0RGS7`PcY7#a9|GV@aXN^_G^i$W5Ua#9%?gnaUo6LZ26
zi!wocs31#8MrJWc4jL%%pt5FUU`%FYVDw~U;7Lg>$Vp5Fhe|Oc1Dl46i>GE7oBht2
zATW#V00#pYa51PdsIxPuF*5LFC6*=X=OpH(>-#2_WbiO(FlaI|FsD`&Ffy=cxM;e7
z+^o&Rz{<eJ#h}Ze&(5I7$RLR`_<0x%7z`O1SkhBVA{ZH%H8fq=9F*tn2z=ct&*lKO
znt=gijyVs51x#TSNWcmdnAVI8tQs!hQ07R^&&^HDONn4)fH9*O8CVl@3NjKI8CX+N
zb4n5!8CddC%OfCE6e9zBVo6D2VQDJZ;xI-AuHgLAqU2P!Oi-Be!NW@r<Yfj$21W*E
z1_lOJFlGb0jhz7!KAcdR3rcf?X=VmS1|9}p21W)x1_p*a24=8cF)eMG?F{@{d|MfW
zK!k{v=2ix=jSLJ7ObikX3=CpmReTI=44e$y3|tHX4EzkD41x@j3=9lf3@l(3QVh~y
z`^6Y!7}yvX!D8$TvJ6aM7RYvx-Es`_5W5+b7}yzj7#J89h%hKvvWYM#X>DN;%h%e%
zAf%q24dY6%W$$26$yS$O%TCtX!l1Q{K_}UgLzI;zrCo%<C|fgGgux_Vf-PHuEn8~~
zg9t*IS+XUU)@}yfNC^%JuI&t#TN$*pAZCj&C_z+<<%5g{`8X0}X)=^00yZ6FvQc*O
zRt6D7C@6tLP=tY%L4v`EL6RYoL5d-RL6)JBL5`uDL7rhggAzDIJQ&zP{$hZI$N~l%
z1`cqDEMTx@-~h+i0tPz<Sq4@HR)*OO_6!^hYz#&Wc?=E=91I)`kqqt(jtm?OTnvm1
kP7KbF@M6$rU;vxJh;R@jnAO0R@<1e^mNGK9fFsWp0JksS3IG5A

delta 327
zcmZ3?Ig^F!)W2Q(7#J9A86+lh#q)VGGO*cX=4F=HF*3+&Oth00@ze}sWMFa5Pf6us
zU}oUuVc=xon#{@QDa(_RT9A{NoSK`OS5nN#z^nmM$evhIl2}-pIys3+y`G7Ifq|8Q
zjR6GM88{di7?>FtLHZdO8Mql37(5x68JHOu7}&M6WwtZ$Y-C_yU}E57U|`^40BPl7
zU}NB6;Adc9P=F|75MU4lnZ>})AjH7NzzEXH05X_~fssL&K?G{7HUk4#E}ao!B1E+S
b*fbunEF;u3Mg~y~ofsNLuxb<oJ6Ie5^i&>B

diff --git a/MAVENProject/target/classes/environnement/Coordonnees.class b/MAVENProject/target/classes/environnement/Coordonnees.class
index b721665537e0d9c15b3ec8b086e1f46c8566c5db..ef4cf4dd0d7862a73273609c012c89c0112e5c0d 100644
GIT binary patch
delta 652
zcmey(dW3`P)W2Q(7#J9A8SE!=*@(C>GB8##GO*cX=4F=HF*2}fxVTJ=s^($IOD&IJ
zWB^f76ECOgu`|dsG6<yRm1LGw>N{s779}Q^q!zI`L^6N@7lRywG7kd>g9;;qf`-pT
z0Z9{UPZ!NFE(SFQ4R!`~Mh0G}URSUYJPeu)yo?O&i6te8g{7&S4B8C3><l`S9T-KK
z^%(RgM=&aA8!|Gml%y7ya4{G&n6fjNFfs^dC6*=XXXfh%6lLa>1eX-0Cg$=mm@$}7
zUd*VX!I;X(!0&@%jWr_!OL}Ta1S12phNcUI6E*oLqjfzi10w?m11AF`0~Z4WLnH$;
z11kdq1HaaG25v3&tqgoxnp+tJHZm|UFfj-*Ffa%)urM$%a51nja5Hc+@G$T(@G=N9
zFfb@EFoU!)h%ktP!-1bcjDd}T5iBOoz{bGLz{w!NAPKd`jDeAX31lYo<a#E#dMO5J
zuqGx383t(vMg~R(Sq5IH(r5-Yuu|#W404fL0$d^t3fmc!e6+VQsBU7=5;EAvV1({E
zF$O*caRwm<2?i+!NwDk0AVxr42XeCogC*D^D+X(ZT8Q8E8JNHhX4Trlz_%XcI<Su+
izK{W%!vj$OHHVSGhQS)@Ok~Xh=$aL<YPJPiVFv(7%~z@b

delta 310
zcmX@Y@tc+F)W2Q(7#J9A8FVIc*@$>DGB8##GO*cX=4F=HF*2}fczRBZs-E~bnS+x-
zmO-AKL2mLvMp0%32F1xY85OjZ85vkgQj1Ht7*rY5*%{Or8HBSE%M$f7^YsIYGV@A;
zONvqxb9opv7&IrVFsV!~VzP8%W?*FCVBln6WZ+_8V2EU3Vqj)qVBpu<&cLlDy_JDa
zOJ*yBz(xiJ1||j}1_lNp1{MYe25trx1|9}Z23`g}2ENH}nZ!j|8Q2&YK^hs@8Q2(@
z7&sZk7{n(_GV8}lFi0|h026~0gCqkZ10#bp125D%a|R}`F3wF1GD1q*7*r4zaWOD4
hFffQRa4?852s1D+@IVwYh%ksUFfcGOXn~!i4FIU|Dl7m1

-- 
GitLab