diff --git a/MAVENProject/src/main/java/entity/Character.java b/MAVENProject/src/main/java/entity/Character.java index 532583a39b049b86ea05f09b8005c3dc02bf1dfb..1176346ba814a7c0aed1e1ccd9ed3e84914e7fc1 100644 --- a/MAVENProject/src/main/java/entity/Character.java +++ b/MAVENProject/src/main/java/entity/Character.java @@ -9,7 +9,6 @@ import environnement.HitBox; import map.Obstacle; import environnement.Physique; import jeu.Jeu; -import jeu.Painter; public class Character extends Entity{ @@ -130,7 +129,8 @@ public class Character extends Entity{ obsMin = obs; } } - }obstacleBeneath = obsMin; + } + obstacleBeneath = obsMin; } /*public void checkIfNextToWall(HashMap<String,Boolean> collisionMap){ diff --git a/MAVENProject/src/main/java/environnement/HitBox.java b/MAVENProject/src/main/java/environnement/HitBox.java index a0218eae6d42767d5c723f012e7c7db32767728d..ee561197dd68ac5c7846fcb284fe7b34fca4ac02 100644 --- a/MAVENProject/src/main/java/environnement/HitBox.java +++ b/MAVENProject/src/main/java/environnement/HitBox.java @@ -47,23 +47,35 @@ public class HitBox { public static HashMap<String,Boolean> collisionMap(HitBox A, HitBox B){ // lignes sautées pour raison de lisibilité HashMap<String,Boolean> map = new HashMap<>(); - Boolean a = !(A.extremites.get("HautGauche").getX() > B.extremites.get("HautDroite").getX()); // A est à droite de B - Boolean b = !(A.extremites.get("HautDroite").getX() < B.extremites.get("HautGauche").getX()); // A est à gauche de B - Boolean c = !(A.extremites.get("HautGauche").getZ() > B.extremites.get("BasGauche").getZ()); // A est en dessous de B - Boolean d = !(A.extremites.get("BasGauche").getZ() < B.extremites.get("HautGauche").getZ()); // A est au dessus de B - map.put("collision_gauche",a); - map.put("collision_droite",b); - map.put("collision_bas",c); - map.put("collision_haut",d); + map.put("collision_gauche", false); + map.put("collision_droite", false); + map.put("collision_bas", false); + map.put("collision_haut", false); + boolean a = !(A.extremites.get("HautGauche").getX() > B.extremites.get("HautDroite").getX()); // A est à droite de B + boolean b = !(A.extremites.get("HautDroite").getX() < B.extremites.get("HautGauche").getX()); // A est à gauche de B + boolean c = !(A.extremites.get("HautGauche").getZ() > B.extremites.get("BasGauche").getZ()); // A est en dessous de B + boolean d = !(A.extremites.get("BasGauche").getZ() < B.extremites.get("HautGauche").getZ()); // A est au dessus de B + if (a && !d && !c){ + map.put("collision_gauche", true); + } + else if (b && !d && !c) { + map.put("collision_droite", true); + } + else if (c && !a && !b) { + map.put("collision_bas", true ); + } + else if (d && !a && !b) { + map.put("collision_haut", true); + } return map; } public static Boolean collision(HitBox A, HitBox B){ - Boolean a = (A.extremites.get("HautGauche").getX() > B.extremites.get("HautDroite").getX()); // A est à droite de B - Boolean b = (A.extremites.get("HautDroite").getX() < B.extremites.get("HautGauche").getX()); // A est à gauche de B - Boolean c = (A.extremites.get("HautGauche").getZ() > B.extremites.get("BasGauche").getZ()); // A est en dessous de B - Boolean d = (A.extremites.get("BasGauche").getZ() < B.extremites.get("HautGauche").getZ()); // A est au dessus de B - return (!a && !b && !c && !d); + Boolean a = !(A.extremites.get("HautGauche").getX() > B.extremites.get("HautDroite").getX()); // A est à droite de B + Boolean b = !(A.extremites.get("HautDroite").getX() < B.extremites.get("HautGauche").getX()); // A est à gauche de B + Boolean c = !(A.extremites.get("HautGauche").getZ() > B.extremites.get("BasGauche").getZ()); // A est en dessous de B + Boolean d = !(A.extremites.get("BasGauche").getZ() < B.extremites.get("HautGauche").getZ()); // A est au dessus de B + return a && b && c && d; } public HashMap<String, Coordonnees> getExtremites() { return extremites; diff --git a/MAVENProject/src/main/java/map/Obstacle.java b/MAVENProject/src/main/java/map/Obstacle.java index 1672d91d56002b1584e670fcd017cf47f8d0b5f1..8b1d6e3215540fc57e5b8d44e5073428a2b0a158 100644 --- a/MAVENProject/src/main/java/map/Obstacle.java +++ b/MAVENProject/src/main/java/map/Obstacle.java @@ -1,7 +1,6 @@ package map; import java.util.HashMap; -import java.util.List; import entity.Entity; import environnement.HitBox; import jeu.Jeu; @@ -44,6 +43,7 @@ public class Obstacle { 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; }