From b30ba1502064ce0960c5e4280319a3b7274b363c Mon Sep 17 00:00:00 2001 From: Azurlors <florianrichard2001@gmail.com> Date: Tue, 29 Nov 2022 19:34:33 +0100 Subject: [PATCH] Update --- .../src/main/java/entity/Character.java | 4 +- .../src/main/java/environnement/HitBox.java | 38 ++++++++++++------- MAVENProject/src/main/java/map/Obstacle.java | 2 +- 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/MAVENProject/src/main/java/entity/Character.java b/MAVENProject/src/main/java/entity/Character.java index 532583a..1176346 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 a0218ea..ee56119 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 1672d91..8b1d6e3 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; } -- GitLab