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