Skip to content
Snippets Groups Projects
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;
    }

    
}