Skip to content
Snippets Groups Projects
Commit 0dc6f2f3 authored by Louis's avatar Louis
Browse files

deplacements du peros (j'etais entrain de la faire juste je voulais gerer les...

deplacements du peros (j'etais entrain de la faire juste je voulais gerer les sauts avant de commit)
parent a06ff548
No related branches found
No related tags found
No related merge requests found
...@@ -117,5 +117,8 @@ class jeu.Jeu{ ...@@ -117,5 +117,8 @@ class jeu.Jeu{
+ void evolve(Cmd) + void evolve(Cmd)
+ boolean isFinished() + boolean isFinished()
} }
class environment.Physique{
- double g
- double lambda
}
@enduml @enduml
\ No newline at end of file
...@@ -4,8 +4,8 @@ import environnement.Coordonnees; ...@@ -4,8 +4,8 @@ import environnement.Coordonnees;
import environnement.Physique; import environnement.Physique;
public class Character extends Entity{ public class Character extends Entity{
Coordonnees coord; //Coordonnees coord;
double vitesseMax; // vitesse max //double vitesseMax; // vitesse max
double vitesseActuX = 0; // vitesse actuelle supposée nulle au départ double vitesseActuX = 0; // vitesse actuelle supposée nulle au départ
double vitesseActuZ = 0; double vitesseActuZ = 0;
double m; double m;
...@@ -21,14 +21,16 @@ public class Character extends Entity{ ...@@ -21,14 +21,16 @@ public class Character extends Entity{
//on actualise les positions //on actualise les positions
double newX,newZ; double newX,newZ;
newX = -Physique.lambda/m*(vitesseActuX - commandX)*Math.exp(-Physique.lambda/m*delta) + commandX*delta + coord.getX(); newX = -Physique.lambda/m*(vitesseActuX - commandX/Physique.lambda)*Math.exp(-Physique.lambda*delta/m) + commandX*delta + coord.getX();
newZ = ((alpha-1)*Physique.g + commandZ)/2*delta*delta + vitesseActuZ*delta + coord.getZ(); newZ = ((1-alpha)*Physique.g - commandZ/m)/2*delta*delta + vitesseActuZ*delta + coord.getZ();
coord = new Coordonnees(newX, newZ); coord = new Coordonnees(newX, newZ); // repere ou la hauteur augmente vers le bas, a revoir
//on actualise les vitesses //on actualise les vitesses
vitesseActuX = (vitesseActuX - commandX)*Math.exp(-Physique.lambda*delta/m); vitesseActuX = (vitesseActuX - commandX/Physique.lambda)*Math.exp(-delta*Physique.lambda/m);
vitesseActuX += commandX; vitesseActuX += commandX/Physique.lambda;
vitesseActuZ += ((alpha-1) + commandZ)*Physique.g; vitesseActuZ = vitesseActuZ + ((1-alpha)*Physique.g - commandZ/m)*delta;
//vitesseActuZ = -vitesseActuZ;
} }
...@@ -36,4 +38,26 @@ public class Character extends Entity{ ...@@ -36,4 +38,26 @@ public class Character extends Entity{
public void attaque(){ public void attaque(){
} }
public Coordonnees getCoord() {
return coord;
}
public double getVitesseMax() {
return vitesseMax;
}
public double getVitesseActuX() {
return vitesseActuX;
}
public double getVitesseActuZ() {
return vitesseActuZ;
}
public double getM() {
return m;
}
} }
package environnement; package environnement;
import entity.Character;
import entity.Entity;
public class Coordonnees { public class Coordonnees {
private double x; private double x;
...@@ -18,12 +16,6 @@ public class Coordonnees { ...@@ -18,12 +16,6 @@ public class Coordonnees {
return 0; 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() { public double getX() {
return x; return x;
} }
......
...@@ -2,5 +2,5 @@ package environnement; ...@@ -2,5 +2,5 @@ package environnement;
public class Physique { public class Physique {
public static final double g = 9.81; // pesanteur public static final double g = 9.81; // pesanteur
public static final double lambda = 3; // coefficient de frottements public static final double lambda = 1; // coefficient de frottements
} }
...@@ -5,7 +5,7 @@ import engine.Game; ...@@ -5,7 +5,7 @@ import engine.Game;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.FileReader; import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
import static jeu.Painter.coordonnees; import static jeu.Painter.charac;
public class Jeu implements Game{ public class Jeu implements Game{
...@@ -26,18 +26,38 @@ public class Jeu implements Game{ ...@@ -26,18 +26,38 @@ public class Jeu implements Game{
@Override @Override
public void evolve(Cmd commande) { public void evolve(Cmd commande) {
System.out.println("Execute "+commande); System.out.println("Execute "+commande);
System.out.println(charac.getCoord().getX());
System.out.println(charac.getCoord().getZ());
double comX,comZ;
int a = 1;
comX = 0;
comZ = 0;
switch (commande) { switch (commande) {
case LEFT: case LEFT:
coordonnees.evolveX(-2); comX = -charac.getVitesseMax();
//coordonnees.evolveX(-2);
break; break;
case RIGHT: case RIGHT:
coordonnees.evolveX(2); comX = charac.getVitesseMax();
//coordonnees.evolveX(2);
break; break;
case JUMP: case JUMP:
comZ = 3*charac.getVitesseMax();
if (charac.getCoord().getZ() < 80)a = 0;
break; break;
case IDLE: case IDLE:
if (charac.getCoord().getZ() < 80){ //a retoucher, j'ai besoin d'autres choses pour avancer
a = 0;
}
else{
a = 1;
}
break; break;
} }
charac.deplacements(comX, comZ, a);
} }
@Override @Override
......
...@@ -4,23 +4,26 @@ import engine.GamePainter; ...@@ -4,23 +4,26 @@ import engine.GamePainter;
import environnement.Coordonnees; import environnement.Coordonnees;
import java.awt.*; import java.awt.*;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import entity.Character;
public class Painter implements GamePainter{ public class Painter implements GamePainter{
protected static final int WIDTH = 1000; protected static final int WIDTH = 1000;
protected static final int HEIGHT = 100; protected static final int HEIGHT = 1000;
public static Coordonnees coordonnees; public static Character charac;
public Painter() { public Painter() {
coordonnees = new Coordonnees(20,80); Coordonnees coordonnees = new Coordonnees(20,80);
charac = new Character(coordonnees, 36, 50000);
} }
@Override @Override
public void draw(BufferedImage im) { public void draw(BufferedImage im) {
Graphics2D crayon = (Graphics2D) im.getGraphics(); Graphics2D crayon = (Graphics2D) im.getGraphics();
crayon.setColor(Color.blue); crayon.setColor(Color.blue);
int x = new Double(coordonnees.getX()).intValue(); int x = (int) charac.getCoord().getX();
int y = new Double(coordonnees.getZ()).intValue(); int y = (int) charac.getCoord().getZ();
crayon.fillOval(x,y,10,10); crayon.fillOval(x,y,10,10);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment