From 7dc27c825d829f5e5446f669e58da1508d46d546 Mon Sep 17 00:00:00 2001
From: Louis <malterre.louis@laposte.net>
Date: Fri, 11 Nov 2022 01:05:38 +0100
Subject: [PATCH] =?UTF-8?q?petites=20modifs=20faites,=20dont=20les=20frott?=
 =?UTF-8?q?ements=20qui=20ont=20ete=20enleves=20car=20faisaient=20freiner?=
 =?UTF-8?q?=20le=20perso=20sur=20du=20long=20terme.=20j'ai=20tjr=20les=20e?=
 =?UTF-8?q?quations=20correspondantes=20mais=20la=20ils=20sont=20negliges.?=
 =?UTF-8?q?=20j'ai=20remarque=20que=20le=20saut=20permettait=20de=20faire?=
 =?UTF-8?q?=20une=20sorte=20de=20boost=20sur=20le=20perso=20(a=20peine=20s?=
 =?UTF-8?q?orti=20d'un=20saut,=20si=20on=20en=20renchaine=20un,=20il=20ira?=
 =?UTF-8?q?=20plus=20haut).=20j'ai=20trouve=20ca=20sympa=20donc=20je=20l'a?=
 =?UTF-8?q?i=20laisse,=20vous=20me=20direz=20ce=20que=20vous=20en=20pensez?=
 =?UTF-8?q?=C2=A7=20LM?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../src/main/java/entity/Character.java       |  37 ++++++--------
 MAVENProject/src/main/java/entity/Entity.java |   4 +-
 .../src/main/java/environnement/Physique.java |   1 -
 MAVENProject/src/main/java/jeu/Jeu.java       |  46 ++++++++++--------
 MAVENProject/src/main/java/jeu/Painter.java   |   6 +--
 .../target/classes/entity/Character.class     | Bin 2276 -> 2137 bytes
 .../target/classes/entity/Entity.class        | Bin 864 -> 864 bytes
 7 files changed, 46 insertions(+), 48 deletions(-)

diff --git a/MAVENProject/src/main/java/entity/Character.java b/MAVENProject/src/main/java/entity/Character.java
index a393971..9c55af7 100644
--- a/MAVENProject/src/main/java/entity/Character.java
+++ b/MAVENProject/src/main/java/entity/Character.java
@@ -3,6 +3,7 @@ package entity;
 import engine.GameEngineGraphical;
 import environnement.Coordonnees;
 import environnement.Physique;
+import jeu.Jeu;
 
 public class Character extends Entity{
     //Coordonnees coord;
@@ -11,7 +12,7 @@ public class Character extends Entity{
     double vitesseActuZ = 0;
     double m;
 
-    public Character(Coordonnees c,int vitesseMax,double m){
+    public Character(Coordonnees c,double vitesseMax,double m){
         super(c,vitesseMax);
         this.m = m;
 
@@ -22,29 +23,23 @@ public class Character extends Entity{
 
         //on actualise les positions
         double newX,newZ;
-        if (commandX != 0){
-            newX = -m/Physique.lambda*(vitesseActuX - commandX/Physique.lambda)*Math.exp(-Physique.lambda*delta/m) + commandX*delta + this.getCoord().getX();
-        }
-        else newX = this.getCoord().getX();
 
-        if ((commandZ == 0) && (this.getCoord().getZ() >= 80))newZ = this.getCoord().getZ();
-        else newZ = ((1-alpha)*Physique.g - commandZ/m)/2*delta*delta + vitesseActuZ*delta + this.getCoord().getZ();
-        System.out.println("écart de hauteur: "+(this.getCoord().getZ()-newZ));
-        this.setCoord(new Coordonnees(newX, newZ)); // repere ou la hauteur augmente vers le bas, a revoir
+        newX =  commandX*delta + this.getCoord().getX(); // frottements enleves (le perso finissait par freiner tout seul donc tant que y'a pas d'interet je les enleve, j'ai tjr les equations de cote)
+
+        if ((commandZ == 0) && (this.getCoord().getZ() >= Jeu.getCoordSol().getZ()))newZ = Jeu.getCoordSol().getZ();
+        else newZ = ((1-alpha)*Physique.g - commandZ)/2*delta*delta + vitesseActuZ*delta + this.getCoord().getZ();
+
+        System.out.println("écart de hauteur: "+Math.abs(this.getCoord().getZ()-newZ));
+
+        this.setCoord(new Coordonnees(newX, newZ)); // on set les nouvelles coordonnees
 
         //on actualise les vitesses
-        if (commandX != 0){
-            vitesseActuX = (vitesseActuX - commandX/Physique.lambda)*Math.exp(-delta*Physique.lambda/m);
-            vitesseActuX += commandX/Physique.lambda;
-        }
-        else vitesseActuX = 0;
-        if ((commandZ == 0) && (this.getCoord().getZ() >= 80)) vitesseActuZ = 0;
-        vitesseActuZ = vitesseActuZ + ((1-alpha)*Physique.g - commandZ/m)*delta;
-        System.out.println("vitesse z: "+vitesseActuZ);
-        //vitesseActuZ = -vitesseActuZ;
-
-
-        
+        vitesseActuX = commandX;
+
+        if ((commandZ == 0) && (this.getCoord().getZ() >= Jeu.getCoordSol().getZ())) vitesseActuZ = 0;
+        else vitesseActuZ = vitesseActuZ + ((1-alpha)*Physique.g - commandZ)*delta;
+
+        System.out.println("vitesse z: "+vitesseActuZ);     
     }
     @Override
     public void attaque(){
diff --git a/MAVENProject/src/main/java/entity/Entity.java b/MAVENProject/src/main/java/entity/Entity.java
index a347f8d..dd73764 100644
--- a/MAVENProject/src/main/java/entity/Entity.java
+++ b/MAVENProject/src/main/java/entity/Entity.java
@@ -4,9 +4,9 @@ import environnement.Coordonnees;
 
 public abstract class Entity {
     private Coordonnees coord;
-    int vitesseMax;
+    final double vitesseMax;
 
-    public Entity(Coordonnees c,int vitesseMax){
+    public Entity(Coordonnees c,double vitesseMax){
         this.coord = c;
         this.vitesseMax = vitesseMax;
     }
diff --git a/MAVENProject/src/main/java/environnement/Physique.java b/MAVENProject/src/main/java/environnement/Physique.java
index 2fb7e05..361f257 100644
--- a/MAVENProject/src/main/java/environnement/Physique.java
+++ b/MAVENProject/src/main/java/environnement/Physique.java
@@ -2,5 +2,4 @@ package environnement;
 
 public class Physique {
     public static final double g = 3000; // pesanteur
-    public static final double lambda = 0.05; // coefficient de frottements
 }
diff --git a/MAVENProject/src/main/java/jeu/Jeu.java b/MAVENProject/src/main/java/jeu/Jeu.java
index 4f385a9..8193475 100644
--- a/MAVENProject/src/main/java/jeu/Jeu.java
+++ b/MAVENProject/src/main/java/jeu/Jeu.java
@@ -1,25 +1,30 @@
 package jeu;
 
 import engine.Game;
-import engine.GameEngineGraphical;
-import environnement.Physique;
+import environnement.Coordonnees;
 
 import java.io.BufferedReader;
 import java.io.FileReader;
 import java.io.IOException;
 import java.util.ArrayList;
+import entity.Character;
 
-import static jeu.Painter.charac;
 public class Jeu implements Game{
 
      
-
-    public static double commandX; // pour la commande deplacements
-
-    public static double commandZ; // pour la commande deplacements
+    private static Coordonnees coordSol; //coordonnees du sol (en realite juste Z nous interesse)
+    static Character charac;
+    /*private static ArrayList<Double> A; // pour mes tests, ne pas faire attention
+    int n;*/ // idem
 
     public Jeu(String source) {
         BufferedReader helpReader;
+
+        /*A = new ArrayList<Double>();
+        n = 0;*/
+
+        charac = new entity.Character(new Coordonnees(200, 300), 1500, 1);
+        coordSol = charac.getCoord();
         try {
             helpReader = new BufferedReader(new FileReader(source));
             String line;
@@ -39,7 +44,7 @@ public class Jeu implements Game{
         System.out.println(charac.getCoord().getZ());
         double comX,comZ;
         int a = 1;
-        int n = 0; //tentative de faire une commande selon z qui décroit au cours du temps
+        
         comX = 0;
         comZ = 0;
 
@@ -49,27 +54,22 @@ public class Jeu implements Game{
 
         
         if (Right) {
-            comX = -charac.getVitesseMax()*Physique.lambda;
+            comX = -charac.getVitesseMax();
         }
         else if (Left) {
-            comX = charac.getVitesseMax() * Physique.lambda;
+            comX = charac.getVitesseMax();
         }
         if (Jump) {
-            if (charac.getCoord().getZ() < 80){a = 0;}
-            else comZ = 300000 * charac.getVitesseMax() * charac.getM()*Math.exp(-n*GameEngineGraphical.getDeltaT()*Math.pow(10, -3));
+            if (charac.getCoord().getZ() < coordSol.getZ())a = 0;
+        else {comZ = 400*charac.getVitesseMax();/*A.add(charac.getCoord().getZ());n++;*/}
         }
         else {
-            if (charac.getCoord().getZ() < 80) { //a retoucher, j'ai besoin d'autres choses pour avancer
-                a = 0;
+            if (charac.getCoord().getZ() < coordSol.getZ()) { //a retoucher, j'ai besoin d'autres choses pour avancer
+                a = 0; 
             }
             else{
                 a = 1;
-                n = 0;
             }
-
-                /*else{
-                    a = 1;
-                }*/
         
         }
         charac.deplacements(comX, comZ, a);
@@ -78,7 +78,15 @@ public class Jeu implements Game{
     @Override
     public boolean isFinished() {
         // le jeu n'est jamais fini
+        /*if (n >= 10){
+            System.out.println(A.toString());
+            return true;
+        }*/
         return false;
     }
+
+    public static Coordonnees getCoordSol(){
+        return coordSol;
+    }
     
 }
\ No newline at end of file
diff --git a/MAVENProject/src/main/java/jeu/Painter.java b/MAVENProject/src/main/java/jeu/Painter.java
index 4b70699..24fae6c 100644
--- a/MAVENProject/src/main/java/jeu/Painter.java
+++ b/MAVENProject/src/main/java/jeu/Painter.java
@@ -3,19 +3,15 @@ package jeu;
 import engine.GamePainter;
 import java.awt.*;
 import java.awt.image.BufferedImage;
-import entity.Character;
-import environnement.Coordonnees;
+import static jeu.Jeu.charac;
 
 public class Painter implements GamePainter{
 
     protected static final int WIDTH = 1000;
     protected static final int HEIGHT = 1000;
-    public static Character charac;
 
     public Painter() {
-        Coordonnees coordonnees = new Coordonnees(20,80);
         
-        charac = new Character(coordonnees, 2, 0.09); // pour simplifier les tests ce n'est pas de cette façon que le personnage sera cree à la fin
     }
 
     @Override
diff --git a/MAVENProject/target/classes/entity/Character.class b/MAVENProject/target/classes/entity/Character.class
index 8aeb807e07e94b6705daac27ef5d235030f866b2..a90a2df72506de0ea2cfc13f6841c7552b7f5375 100644
GIT binary patch
delta 1170
zcmaDNcvFDu)W2Q(7#J9A8EPkTl{30bY%*qanYeArWIsj;HhBg`b_RvXIgIkmN({=A
z`xw<sG#Rwn8MGJ~__7kq67_Qu^V0Qw6H7997<3qP85x)h^2-?+ST$T+G+nqD7#Z|=
z7z`K;Ckry^avC$3vNM=4GDuEVWR$GuVK8GbXJlYWPc4aHWMI|+DK}=Y<YBOa2}f};
z*f7|!GuSdRuxF)~>U*V@@-Wyl7&0<&r>B-U=jRut1n1|lIV>+=00A}!5Xr#6z{%js
z;LgtA#>gOmaAI&}aY<?}4}%ATCnE!Me(B`HOwx?rlkYRhF#1mZ!z97s#o*7wz{wCW
zS%z6kUXvk+has3Dgpq+cF{zl5fkgxC9WRD39)@s+h{<-$S{z;sQ9KOM3^9`nm{r{4
z7!ueS;u#r)!8T^*>jxBN=9L7O6s0ES@-QSa1TZqN7l4Fv^0*j`8InO(r9i_e3=~dj
zJPhd!8Ix}_>oI0c=3>!fV)UGB#^S|R&ch(hz&5#!rK&!kfrWvMfq_9>OIu?*1CJKp
zRtA0$A*dz6vXw!2BLf2i6N4xN1A`a?D+2?A00SEXHv=~V4}$=MAcGi#FoPHa1A`U=
z3&;otaRv!+aEUWWGDtBng2kj6*ch0=EDi=X1{MZJ1{nrf21W*M1_s7i4E5{`JPZsB
zZ+9@rwTm#Qh%l(_V9?06WK)-5%huY)ptp^|DA|%jlW+Pg26+hIVh4luHU^97vl;jx
zEK9EC3|cIrtSRjx3=Y|v=^_kH`4Vi|AOp5A2uiSJCqp$RTXJn;aM{h^6)EJioxu+*
zTF+o1!Ii#)A#fW*=r)GPZ49wmyBUllB{(FwwlgGcV@TCf-^#!bwqFLUfdOGZH#nS@
zGe~JgZeb8aaskNBtqg)N%Q8WhZDA0ETLB7GW^kbD)q}!;L5x9wL7G91L6*URL5?Av
zL4l!@L5X1ogDS&Z26cu#3>plV8MGMQFld8AJBWb;6lCzwe#?-}zy=QOw+uN9Yz)j`
z*<6M^237_EhPw>;3~UT+3~~(T844KK7&sVg8JHOg8Q2)O7}6Q)+n~%M1_lOx2A01J
z4$RDd7}S`5GlYmSFftS~ltAK&L7RaAYzHIA^^hb1u~Z-IC?1F;)KQEKr3~g!jrt5s
zU^!N;EevJr;pqvYS<(neH!ECs1%vryO%4@FGpw?e4Ca&5I8+#|Ci`)SGn!9c%%LJ{
LhgD@Y*t!}3uQkY#

delta 1288
zcmca9@I;X7)W2Q(7#J9A8R{l-l{0!yY%*r_oVaa@5~C+015Zk7K~7?FYHn&?Niib>
zn}&;vr)C%zg93vRJA>ln3`TioWd@bWU5sk6S`0eu4BCtgd|8QQiTXK-dFlGTi6t34
z47v<@j10^L`Q?lZtQsyZnl5biD`$ehEVlhn1{Z@Cg9#6VDT5g!19NIc0V4y8hKr^P
z7Xu@M1rLKIgVp3GjJljQ40h}cwu}stlNA{y<9HbC85|fHSkhBVA{ZH%H9*R37@T+*
zoMFOIYz`p|V8G_Eya37oQw$884BiaB><m7P3<3!E23HoBq~`K4_%ZlTUdyDw7&!SH
zlZ;|8BZKhamC1=kB?>923K@x|C8?!FRtj7U0Suu$44e#Mlew9tI06_Vco-rXq9(gA
zYjFfH#PBf0GQ>?TV^(2HU`S$TNSwTYSwb_JA&ilMy`U&FuOugri@}B=6=XmfG+@F&
z{>|WF$YjWx{E%6XF=w&>i{4}>77w-x9tLR!naLAas_OF?m>F0Z7#PH~v}Lw4@M!UE
zW#9)9f?Aqe8H6`7FfcGNh=Sz7s`we$7`Pa?8Mqk)7z7wZ8H5<b7#J9|7+An6#2F;O
z!6C*V$sonR2o{rOkYQi~vp5*o7?>Ft8Dtsc7#JD285o%K893`1co-NM!*?*qw~H{S
ziZH0}V9?CAWK-vxK9j*hYYT&Lxd?-PzSb57esvHdJzIpqP=YNRB$K~`!8lu8f-O5)
zYa4_4HU{ftOOE9XJW!4$hbG_jSq!oeuA>Np%k<d{{7{}H*K!7Z7E#ue_IeQpw`@(Y
zap@uq9{Cb%*%0Fe5e7RZTXJn;@Y>A~5GfS2ogoBjhy+*qHiqzR4AI*d;<a`&*hETj
zNN{auNZH1a4tBng7Q)#QY#@IioDB-(NRX%MLB2}f%D}&zfddrm{9sp$L9Kwe8Z05G
z6}g2$5bS0oCxaZhl|c~Zx@?f^wlE07-35w2W^nv@F$gg*Fo-e;Fi0|pF-S3ZFi10a
zGsx64gfPf4lrYFMEMQPz*w3KIaE?KR;R=H)!zTtcMg|6TMrH;LMh*r|MnwiKMq37L
z#xMp0aHPjDaDrlv0UGIy;S9M9Y@kSI3}?s#M>PXuI72>z3<E2J0HZrY0RtNY8-oV}
zGeaQ*8v_SJ2qTDP4q_HEFf$Z^Q`Q28?NC-R0|SEy1N$EaZ{|M?9L(~67_^yxGbFJ{
zFfcNdFqBT#U{?q?0Xu{TWGMq9)FF%vWeg6G^u=Jnzyy|K)7rvN-o755mch<sFh|nO
z2G?E5;4nFnU08@8UAgrn4sk}X+~jxcf{gZ)I7FGNA&Mt!a|kjzPvQ_|uL0Xp3jnMk
B?VSJs

diff --git a/MAVENProject/target/classes/entity/Entity.class b/MAVENProject/target/classes/entity/Entity.class
index 752e41fda65e67dc6323f5903c4463e6b8710315..35e84f8f0d4d6a2051ff954fd9ca94b3715face5 100644
GIT binary patch
delta 97
zcmaFB_JD0dCZo&5EDc7NiIb;^awO;H<|gK)L@_e3Cgv1mBr-BEdQP@u>}M31e2!6E
zh?#+ffq{WvYdZsvmiAT#el3m3-x=FPIT#oj7#J8Cq!~CEn87R=2HDAzn9czJ1KkzM

delta 97
zcmaFB_JD0dCZp%XEDc7_iIb;^GP*D_a3tsF<|gK)L@_e3Cgv1mBu=(t>}O<{e2!6E
zh>3xjfq{WvYdZsvmiAT#el3~F-x=FPr5P9*7#J8CWEiBu3K$t=88{|SVmb!^^L!P=

-- 
GitLab