-
Louis MALTERRE authoredLouis MALTERRE authored
Character.java 2.22 KiB
package entity;
import environnement.Coordonnees;
import environnement.Physique;
import jeu.Jeu;
public class Character extends Entity{
private double vitesseActuX = 0; // vitesse actuelle supposée nulle au départ
private double vitesseActuZ = 0;
private final double impulsionSaut;
private double masse;
public Character(Coordonnees c,double vitesseMax,double m,double impSaut){
super(c,vitesseMax);
this.masse = m;
this.impulsionSaut = impSaut;
}
@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 = Math.pow(10, -3); // pas de temps remis en secondes
//on actualise les positions
double newX,newZ;
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
vitesseActuX = commandX;
if ((commandZ == 0) && (this.getCoord().getZ() >= Jeu.getCoordSol().getZ())) vitesseActuZ = 0;
else vitesseActuZ = vitesseActuZ + 7*((1-alpha)*Physique.g - commandZ)*delta;
System.out.println("vitesse z: "+vitesseActuZ);
}
@Override
public void attaque(){
}
public void evolveCharacter(double commandX,double commandZ,int alpha){
deplacements(commandX, commandZ, alpha);
}
public double getVitesseMax() {
return vitesseMax;
}
public double getVitesseActuX() {
return vitesseActuX;
}
public double getVitesseActuZ() {
return vitesseActuZ;
}
public double getM() {
return masse;
}
public double getImpulsionSaut() {
return impulsionSaut;
}
}