Skip to content
Snippets Groups Projects
Commit 2267652c authored by Louis's avatar Louis
Browse files
parents 0dc6f2f3 b21761b4
No related branches found
No related tags found
No related merge requests found
......@@ -90,9 +90,13 @@ class environment.Object {
class environment.Obstacle{
}
class environment.Coordonnees{
+ int x
+ int z
- int x
- int z
+ {static} int distance(Object,Object)
+ double getX()
+ double getZ()
+ void evolveX(double var)
+ void evolveZ(double var)
}
......@@ -117,8 +121,14 @@ class jeu.Jeu{
+ void evolve(Cmd)
+ boolean isFinished()
}
<<<<<<< HEAD
class environment.Physique{
- double g
- double lambda
}
=======
>>>>>>> b21761b421591b5fad482fd94972d5eb53ff8a31
@enduml
\ No newline at end of file
......@@ -4,8 +4,13 @@ import environnement.Coordonnees;
import environnement.Physique;
public class Character extends Entity{
<<<<<<< HEAD
//Coordonnees coord;
//double vitesseMax; // vitesse max
=======
double vitesseMax; // vitesse max
>>>>>>> b21761b421591b5fad482fd94972d5eb53ff8a31
double vitesseActuX = 0; // vitesse actuelle supposée nulle au départ
double vitesseActuZ = 0;
double m;
......@@ -15,15 +20,22 @@ public class Character extends Entity{
this.m = m;
}
@Override
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;
<<<<<<< HEAD
newX = -Physique.lambda/m*(vitesseActuX - commandX/Physique.lambda)*Math.exp(-Physique.lambda*delta/m) + commandX*delta + coord.getX();
newZ = ((1-alpha)*Physique.g - commandZ/m)/2*delta*delta + vitesseActuZ*delta + coord.getZ();
coord = new Coordonnees(newX, newZ); // repere ou la hauteur augmente vers le bas, a revoir
=======
newX = ((-Physique.lambda / m) * (vitesseActuX - commandX) * Math.exp(-Physique.lambda / m * delta)) + (commandX * delta) + this.getCoord().getX();
newZ = ((alpha-1)*Physique.g + commandZ)/2*delta*delta + vitesseActuZ*delta + this.getCoord().getZ();
this.getCoord().evolveX(newX);
this.getCoord().evolveZ(newZ);
>>>>>>> b21761b421591b5fad482fd94972d5eb53ff8a31
//on actualise les vitesses
vitesseActuX = (vitesseActuX - commandX/Physique.lambda)*Math.exp(-delta*Physique.lambda/m);
......@@ -34,7 +46,7 @@ public class Character extends Entity{
}
@Override
public void attaque(){
}
......
......@@ -3,13 +3,16 @@ package entity;
import environnement.Coordonnees;
public abstract class Entity {
Coordonnees coord;
private Coordonnees coord;
int vitesseMax;
public Entity(Coordonnees c,int vitesseMax){
this.coord = c;
this.vitesseMax = vitesseMax;
}
public void deplacements(){}
public void deplacements(double commandX, double commandZ, int alpha){}
public void attaque(){}
public Coordonnees getCoord(){
return this.coord;
} // Pour retourner les coordonées
}
......@@ -5,10 +5,23 @@ import engine.Game;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
<<<<<<< HEAD
import static jeu.Painter.charac;
=======
import entity.Character;
import environnement.Coordonnees;
>>>>>>> b21761b421591b5fad482fd94972d5eb53ff8a31
public class Jeu implements Game{
public static Coordonnees coordonnees = new Coordonnees(20,80);
public static Character personnage = new Character(coordonnees,10,1); // pour simplifier les tests ce n'est pas de cette façon que le personnage sera créé à la fin
public static double commandX; // pour la commande deplacements
public static double commandZ; // pour la commande deplacements
public Jeu(String source) {
BufferedReader helpReader;
try {
......@@ -26,6 +39,7 @@ public class Jeu implements Game{
@Override
public void evolve(Cmd commande) {
System.out.println("Execute "+commande);
<<<<<<< HEAD
System.out.println(charac.getCoord().getX());
System.out.println(charac.getCoord().getZ());
double comX,comZ;
......@@ -53,6 +67,33 @@ public class Jeu implements Game{
else{
a = 1;
}
=======
System.out.println(coordonnees.getX()); // test pour debugger
System.out.println(coordonnees.getZ());
System.out.println(personnage.getCoord().getX());
switch (commande) {
case LEFT:
commandX = 1; // valeur arbitraire pour toutes les commendes X et Z Louis à toi de voir
commandZ = 0;
personnage.deplacements(commandX,commandZ,0);
break;
case RIGHT:
commandX = -1;
commandZ = 0;
personnage.deplacements(commandX,commandZ,0);
break;
case JUMP:
commandZ = 6;
commandX = 0;
personnage.deplacements(commandX,commandZ,0);
break;
case IDLE:
commandZ = 0;
commandX = 0;
personnage.deplacements(commandX,commandZ,0);
>>>>>>> b21761b421591b5fad482fd94972d5eb53ff8a31
break;
......
package jeu;
import engine.GamePainter;
import environnement.Coordonnees;
import java.awt.*;
import java.awt.image.BufferedImage;
<<<<<<< HEAD
import entity.Character;
=======
import static jeu.Jeu.coordonnees;
>>>>>>> b21761b421591b5fad482fd94972d5eb53ff8a31
public class Painter implements GamePainter{
protected static final int WIDTH = 1000;
<<<<<<< HEAD
protected static final int HEIGHT = 1000;
public static Character charac;
......@@ -16,14 +20,24 @@ public class Painter implements GamePainter{
Coordonnees coordonnees = new Coordonnees(20,80);
charac = new Character(coordonnees, 36, 50000);
=======
protected static final int HEIGHT = 100;
public Painter() {
>>>>>>> b21761b421591b5fad482fd94972d5eb53ff8a31
}
@Override
public void draw(BufferedImage im) {
Graphics2D crayon = (Graphics2D) im.getGraphics();
crayon.setColor(Color.blue);
<<<<<<< HEAD
int x = (int) charac.getCoord().getX();
int y = (int) charac.getCoord().getZ();
=======
int x = (int)Math.round(coordonnees.getX());
int y = (int)Math.round(coordonnees.getZ());
>>>>>>> b21761b421591b5fad482fd94972d5eb53ff8a31
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