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

physique et deplacement implementes, j'ai garde une feuille avec les equations physiques

si jamais. LM
parent fb10ebcd
No related branches found
No related tags found
No related merge requests found
package entity; package entity;
import environnement.Coordonnees; import environnement.Coordonnees;
import environnement.Physique;
public class Character extends Entity{ public class Character extends Entity{
Coordonnees coord; 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); 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(){ public void attaque(){
......
package environnement; package environnement;
import java.lang.ProcessBuilder.Redirect.Type; import entity.Character;
import entity.Entity; import entity.Entity;
public class Coordonnees { public class Coordonnees {
int x; double x;
int z; double z;
public Coordonnees(int x,int z){ public Coordonnees(double newX,double newZ){
this.x = x; this.x = newX;
this.z = z; this.z = newZ;
} }
public static int distance(Object o1,Object o2){ 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; return 0;
} }
public void testOrdiVerdun(){ public void testOrdiVerdun(){
Entity e = new Character(this, 10,100);
e.attaque(); //juste les msg d'erreurs me triggeraient
System.out.println("test"); System.out.println("test");
} }
public double getX() {
return x;
}
public double getZ() {
return z;
}
} }
package environnement;
public class Physique {
public static final double g = 9.81; // pesanteur
public static final double lambda = 3; // coefficient de frottements
}
No preview for this file type
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment