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

pb saut

parent 5a9c3724
No related branches found
No related tags found
No related merge requests found
...@@ -5,10 +5,10 @@ import java.util.Map; ...@@ -5,10 +5,10 @@ import java.util.Map;
import environnement.Coordonnees; import environnement.Coordonnees;
import environnement.HitBox; import environnement.HitBox;
import environnement.Obstacle;
import environnement.Physique; import environnement.Physique;
import jeu.Jeu; import jeu.Jeu;
public class Character extends Entity{ public class Character extends Entity{
private double vitesseActuX = 0; // vitesse actuelle supposée nulle au départ private double vitesseActuX = 0; // vitesse actuelle supposée nulle au départ
...@@ -47,14 +47,14 @@ public class Character extends Entity{ ...@@ -47,14 +47,14 @@ public class Character extends Entity{
if ((tableCommande.get("CommandZ") == 0) && (this.getCoord().getZ() >= Jeu.getCoordSol().getZ()))newZ = Jeu.getCoordSol().getZ(); if ((tableCommande.get("CommandZ") == 0) && (this.getCoord().getZ() >= Jeu.getCoordSol().getZ()))newZ = Jeu.getCoordSol().getZ();
else newZ = ((1-alpha)*Physique.g - tableCommande.get("CommandZ"))/2*delta*delta + vitesseActuZ*delta + this.getCoord().getZ(); else newZ = ((1-alpha)*Physique.g - tableCommande.get("CommandZ"))/2*delta*delta + vitesseActuZ*delta + this.getCoord().getZ();
//System.out.println("écart de hauteur: "+Math.abs(this.getCoord().getZ()-newZ)); //System.out.println("écart de hauteur: "+this.getCoord().getZ());
this.setCoord(new Coordonnees(newX, newZ)); // on set les nouvelles coordonnees this.setCoord(new Coordonnees(newX, newZ)); // on set les nouvelles coordonnees
//on actualise les vitesses //on actualise les vitesses
vitesseActuX = tableCommande.get("CommandX"); vitesseActuX = tableCommande.get("CommandX");
if ((tableCommande.get("CommandZ") == 0) && (this.getCoord().getZ() >= Jeu.getCoordSol().getZ())) vitesseActuZ = 0; if ((tableCommande.get("CommandZ") == 0) && (alpha == 1)) vitesseActuZ = 0;
else vitesseActuZ = vitesseActuZ + 7*((1-alpha)*Physique.g - tableCommande.get("CommandZ"))*delta; else vitesseActuZ = vitesseActuZ + 7*((1-alpha)*Physique.g - tableCommande.get("CommandZ"))*delta;
//System.out.println("vitesse z: "+vitesseActuZ); //System.out.println("vitesse z: "+vitesseActuZ);
...@@ -80,7 +80,7 @@ public class Character extends Entity{ ...@@ -80,7 +80,7 @@ public class Character extends Entity{
} }
public void checkIfOnGround(){ // faut modifier la condition pour la gestion de colisions avec le sol public void checkIfOnGround(){ // faut modifier la condition pour la gestion de colisions avec le sol
if (this.getCoord().getZ() < Jeu.getCoordSol().getZ())alpha = 0; if (Obstacle.collisionBas(this, Jeu.getObstacleTable()))alpha = 0;
else alpha = 1; else alpha = 1;
} }
......
package environnement; package environnement;
import java.util.List;
import entity.Character;
public class Obstacle { public class Obstacle {
...@@ -11,4 +14,11 @@ public class Obstacle { ...@@ -11,4 +14,11 @@ public class Obstacle {
public HitBox getHitbox() { public HitBox getHitbox() {
return hitbox; return hitbox;
} }
public static Boolean collisionBas(Character charac,List<Obstacle> list){
for (Obstacle obs : list){
if (HitBox.collisionBas(obs.getHitbox(),charac.getHitBox()))return true;
}
return false;
}
} }
...@@ -4,9 +4,9 @@ import java.io.BufferedReader; ...@@ -4,9 +4,9 @@ import java.io.BufferedReader;
import java.io.FileReader; import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
import java.net.URL; import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import entity.Character; import entity.Character;
...@@ -19,21 +19,38 @@ import loaders.CharacterLoader; ...@@ -19,21 +19,38 @@ import loaders.CharacterLoader;
public class Jeu implements Game{ public class Jeu implements Game{
//coordonnees du sol
private static Coordonnees coordSol = new Coordonnees(200,700); //coordonnees du sol (en realite juste Z nous interesse) private static Coordonnees coordSol = new Coordonnees(200,700); //coordonnees du sol (en realite juste Z nous interesse)
//perso
static Character gameCharacter; static Character gameCharacter;
//recupere la direction dans laquelle doit aller le personnage
private static Map<String,Boolean> directionJeu; private static Map<String,Boolean> directionJeu;
//celui qui chargera le perso et les sprites
static CharacterLoader gameCharacterLoader; static CharacterLoader gameCharacterLoader;
String characterSkinPath; // jsp si c'est le jeu qui doit gerer ca, au pire vous pouvez changer
//path vers la bonne frame a utiliser
String characterSkinPath;
//sa construction
final String beginPath; final String beginPath;
String movement; String movement;
//pour pouvoir se souvenir de l'ancien mouvement effectue
String previousMovement; String previousMovement;
//gere le chgt de frame
int numberOfMovement; int numberOfMovement;
int nbIterationPerFrame = 50; int nbIterationPerFrame = 50;
int nbBeforeFramechgt = nbIterationPerFrame; int nbBeforeFramechgt = nbIterationPerFrame;
//private boolean characterNotMoving = true; //private boolean characterNotMoving = true;
private boolean characterAttacking = false; //boolean necessaire pour rendre l'animation d'attaque prioritaire private boolean characterAttacking = false; //boolean necessaire pour rendre l'animation d'attaque prioritaire
public static Obstacle sol = new Obstacle(new HitBox(new Coordonnees(200,700),1,1000000)); public static Obstacle sol = new Obstacle(new HitBox(new Coordonnees(200,700),1,1000000));
private static List<Obstacle> obstacleTable = new ArrayList<Obstacle>();
public Jeu(String source) { public Jeu(String source) {
...@@ -78,6 +95,9 @@ public class Jeu implements Game{ ...@@ -78,6 +95,9 @@ public class Jeu implements Game{
gameCharacterLoader.setPathTable(tempMap); gameCharacterLoader.setPathTable(tempMap);
obstacleTable.add(sol);
obstacleTable.add(new Obstacle(new HitBox(new Coordonnees(300,550),100,120)));
} }
@Override @Override
...@@ -157,5 +177,13 @@ public class Jeu implements Game{ ...@@ -157,5 +177,13 @@ public class Jeu implements Game{
public static Map<String, Boolean> getDirectionJeu() { public static Map<String, Boolean> getDirectionJeu() {
return directionJeu; return directionJeu;
} }
public static Obstacle getSol() {
return sol;
}
public static List<Obstacle> getObstacleTable() {
return obstacleTable;
}
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment