diff --git a/MAVENProject/src/main/java/entity/Character.java b/MAVENProject/src/main/java/entity/Character.java index 1176346ba814a7c0aed1e1ccd9ed3e84914e7fc1..f99230016c105ac8b6f4b742ad2c59fc0c2397dd 100644 --- a/MAVENProject/src/main/java/entity/Character.java +++ b/MAVENProject/src/main/java/entity/Character.java @@ -1,14 +1,14 @@ package entity; import java.util.HashMap; -import java.util.List; import java.util.Map; import environnement.Coordonnees; import environnement.HitBox; -import map.Obstacle; import environnement.Physique; import jeu.Jeu; +import static environnement.HitBox.collisionMap; +import static jeu.Painter.test; public class Character extends Entity{ @@ -39,7 +39,10 @@ public class Character extends Entity{ } @Override public void deplacements(){ // alpha indique si il est au sol ou non, il vaut 0 ou 1 en fonction - + if (this.getCoord().getZ()>= 700 ) { + alpha = 1; + } + else { alpha = 0;} double delta = Math.pow(10, -3); // pas de temps remis en secondes //on actualise les positions @@ -54,25 +57,12 @@ public class Character extends Entity{ newZ = ((1-alpha)*Physique.g - tableCommande.get("CommandZ"))/2*delta*delta + vitesseActuZ*delta + this.getCoord().getZ(); if (newZ+entityHEIGHT/2 >= obstacleBeneath.getHitbox().getExtremites().get("HautGauche").getZ()){ newZ = obstacleBeneath.getHitbox().getExtremites().get("HautGauche").getZ()-entityHEIGHT/2; - //alpha = 1; + alpha = 1; } //(tableCommande.get("CommandZ") == 0) this.getCoord().getZ()(tableCommande.get("CommandZ") == 0) && this.setCoord(new Coordonnees(newX, newZ)); // on set les nouvelles coordonnees - - /*if (obstacleNextTo != null){ - if (tableCommande.get("CommandX") > 0){ - if (this.getCoord().getX()+entityWIDTH/2 < obstacleNextTo.getHitbox().getExtremites().get("HautGauche").getX()){ - this.setCoord(new Coordonnees(obstacleNextTo.getHitbox().getExtremites().get("HautGauche").getX()-entityWIDTH/2, this.getCoord().getZ())); - } - } - else if (tableCommande.get("CommandX") < 0){ - if (this.getCoord().getX()-entityWIDTH/2 > obstacleNextTo.getHitbox().getExtremites().get("HautDroite").getX()){ - this.setCoord(new Coordonnees(obstacleNextTo.getHitbox().getExtremites().get("HautDroite").getX()+entityWIDTH/2, this.getCoord().getZ())); - } - } - }*/ //on actualise les vitesses @@ -80,18 +70,10 @@ public class Character extends Entity{ if (alpha == 1) vitesseActuZ = 0; /*else*/ vitesseActuZ = vitesseActuZ + 7*((1-alpha)*Physique.g - tableCommande.get("CommandZ"))*delta; - } public void collisionGestion(){ - - //collisionMap = HitBox.collisionMap(this.hitBox, obs.getHitbox()); - checkIfOnGround(Jeu.getObstacleTable()); - /*for (Obstacle obs : Jeu.getObstacleTable()){ - if (obs != Jeu.getSol()){ - - } - }*/ + collisionMap (this.getHitBox(),test.getHitbox()); } @Override public void attaque(){ @@ -112,43 +94,6 @@ public class Character extends Entity{ } } - public void checkIfOnGround(List<Obstacle> liste){ // faut modifier la condition pour la gestion de colisions avec le sol - obstacleBeneathCharacter(liste); // cherche l'obstacle en-dessous du personnage - System.out.println(!Obstacle.collisionBas(this)); - if (!Obstacle.collisionBas(this)){ // revoir car on rentre tjr dans cette condition - alpha = 0; - } - else alpha = 1; - } - - public void obstacleBeneathCharacter(List<Obstacle> liste){ - Obstacle obsMin = Jeu.getSol(); - for (Obstacle obs : liste){ - if (obs != Jeu.getSol() && obs.getHitbox().getExtremites().get("HautDroite").getZ() >= this.getCoord().getZ()+entityHEIGHT/2 && HitBox.collisionMap(this.getHitBox(), obs.getHitbox()).get("collision_droite") && HitBox.collisionMap(this.getHitBox(), obs.getHitbox()).get("collision_gauche")){ - if (obs.getHitbox().getExtremites().get("HautDroite").getZ() < obsMin.getHitbox().getExtremites().get("HautDroite").getZ()){ - obsMin = obs; - } - } - } - obstacleBeneath = obsMin; - } - - /*public void checkIfNextToWall(HashMap<String,Boolean> collisionMap){ - if (((HitBox.collisionDroite(this.getHitBox(), Painter.test.getHitbox()) && tableCommande.get("CommandX") == -vitesseMax)) || (HitBox.collisionGauche(this.getHitBox(), Painter.test.getHitbox()) && tableCommande.get("CommandX") == vitesseMax)){ - beta = 0; - obstacleNextTo = Painter.test; - System.out.println("beta :"); - System.out.println(beta); - }else { - beta = 1; - System.out.println("beta :"); - System.out.println(beta); - obstacleNextTo = null; - } - - - - }*/ public void resetCommand(){ for (String key : tableCommande.keySet()){ @@ -159,11 +104,7 @@ public class Character extends Entity{ public void evolveCharacter(){ getGameCommand(); collisionGestion(); - //checkIfNextToWall(); - //checkIfOnGround(); - //checkIfNextToWall(); deplacements(); - //checkIfNextToWall(); resetCommand(); this.setHitBox(new HitBox(this.getCoord(),entityHEIGHT,entityWIDTH)); // mise à jour moins crade pour l'instant } diff --git a/MAVENProject/src/main/java/environnement/HitBox.java b/MAVENProject/src/main/java/environnement/HitBox.java index ee561197dd68ac5c7846fcb284fe7b34fca4ac02..7bbd3edf16adf4126d289f917560fdcbc8f09e5a 100644 --- a/MAVENProject/src/main/java/environnement/HitBox.java +++ b/MAVENProject/src/main/java/environnement/HitBox.java @@ -67,6 +67,7 @@ public class HitBox { else if (d && !a && !b) { map.put("collision_haut", true); } + System.out.println(map); return map; } diff --git a/MAVENProject/src/main/java/jeu/Jeu.java b/MAVENProject/src/main/java/jeu/Jeu.java index 8e9dff0a0771f769db78a3bea72ec319cffc7535..900f55b775fbd91753e9d5c2c3a8813431a76905 100644 --- a/MAVENProject/src/main/java/jeu/Jeu.java +++ b/MAVENProject/src/main/java/jeu/Jeu.java @@ -166,16 +166,9 @@ public class Jeu implements Game{ @Override public boolean isFinished() { // le jeu n'est jamais fini - /*if (n >= 10){ - System.out.println(A.toString()); - return true; - }*/ return false; } - /*public static Coordonnees getCoordSol(){ - return coordSol; - }*/ public static Map<String, Boolean> getDirectionJeu() { return directionJeu; diff --git a/MAVENProject/src/main/java/map/Obstacle.java b/MAVENProject/src/main/java/map/Obstacle.java index 8b1d6e3215540fc57e5b8d44e5073428a2b0a158..dca88ff5b8053e7feb8884f38c6cbe48e6754a2e 100644 --- a/MAVENProject/src/main/java/map/Obstacle.java +++ b/MAVENProject/src/main/java/map/Obstacle.java @@ -1,9 +1,6 @@ package map; -import java.util.HashMap; -import entity.Entity; import environnement.HitBox; -import jeu.Jeu; @@ -17,63 +14,5 @@ public class Obstacle { public HitBox getHitbox() { return hitbox; } - - /*public static Boolean collisionBas(Character charac,List<Obstacle> list){ - for (Obstacle obs : list){ - if (obs != Jeu.getSol()){ - - if (charac.getCoord().getZ()+charac.getEntityHEIGHT() < obs.getHitbox().getExtremites().get("HautGauche").getZ() && HitBox.collisionDroite(charac.getHitBox(),obs.getHitbox()) && HitBox.collisionGauche(charac.getHitBox(),obs.getHitbox()) && HitBox.collisionBas(obs.getHitbox(),charac.getHitBox())){ - - charac.setObstacleBeneath(obs); - return true; - } - - } - else{ - if (HitBox.collisionBas(obs.getHitbox(), charac.getHitBox())) { - charac.setObstacleBeneath(obs); - return true; - } - } - }//a revoir - return false; - }*/ - - public static Boolean collisionBas(Entity charac){ - HashMap<String,Boolean> collisionMap = HitBox.collisionMap(charac.getHitBox(), charac.getObstacleBeneath().getHitbox()); - if (charac.getObstacleBeneath() != Jeu.getSol()){ - System.out.println("jcxvsfdkjjhsdkghjsdkj"); - if (collisionMap.get("collision_droite") && collisionMap.get("collision_gauche") && !collisionMap.get("collision_bas")) { - return true; - } - }else{ - if (!collisionMap.get("collision_bas")) return true; - } - return false; - } - - /*public static Boolean collisionGauche(Entity charac,List<Obstacle> list){ - for (Obstacle obs : list){ - if (HitBox.collisionGauche(charac.getHitBox(), obs.getHitbox()) && obs != Jeu.getSol() && !HitBox.collisionHaut(obs.getHitbox(),charac.getHitBox())){ - charac.setObstacleNextTo(obs); - return true; - } - - } - charac.setObstacleNextTo(null); - return false; - } - - public static Boolean collisionDroite(Entity charac,List<Obstacle> list){ - for (Obstacle obs : list){ - if (HitBox.collisionDroite(charac.getHitBox(), obs.getHitbox()) && obs != Jeu.getSol() && !HitBox.collisionHaut(obs.getHitbox(),charac.getHitBox())) { - charac.setObstacleNextTo(obs); - return true; - } - - } - charac.setObstacleNextTo(null); - return false; - }*/ }