diff --git a/MAVENProject/src/main/java/entity/Character.java b/MAVENProject/src/main/java/entity/Character.java
index deb6505ea893390441f839b6be5b3b7e32f8d1c6..532583a39b049b86ea05f09b8005c3dc02bf1dfb 100644
--- a/MAVENProject/src/main/java/entity/Character.java
+++ b/MAVENProject/src/main/java/entity/Character.java
@@ -1,6 +1,7 @@
 package entity;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import environnement.Coordonnees;
@@ -53,7 +54,7 @@ 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+1;
+            newZ = obstacleBeneath.getHitbox().getExtremites().get("HautGauche").getZ()-entityHEIGHT/2;
             //alpha = 1;
         }
 
@@ -61,7 +62,7 @@ public class Character extends Entity{
 
         this.setCoord(new Coordonnees(newX, newZ)); // on set les nouvelles coordonnees
 
-        if (obstacleNextTo != null){
+        /*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()));
@@ -72,7 +73,7 @@ public class Character extends Entity{
                     this.setCoord(new Coordonnees(obstacleNextTo.getHitbox().getExtremites().get("HautDroite").getX()+entityWIDTH/2, this.getCoord().getZ()));
                 }
             }
-        }
+        }*/
  
  
         //on actualise les vitesses
@@ -80,11 +81,19 @@ 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()){
+                
+            }
+        }*/
+    }
     @Override
     public void attaque(){
 
@@ -104,18 +113,19 @@ public class Character extends Entity{
         }
     }
 
-    public void checkIfOnGround(){ // faut modifier la condition pour la gestion de colisions avec le sol
-        obstacleBeneathCharacter(); // cherche l'obstacle en-dessous du personnage
-        if (!Obstacle.collisionBas(this)){
+    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(){
+    public void obstacleBeneathCharacter(List<Obstacle> liste){
         Obstacle obsMin = Jeu.getSol();
-        for (Obstacle obs : Jeu.getObstacleTable()){
-            if (obs != Jeu.getSol() && obs.getHitbox().getExtremites().get("HautDroite").getZ() >= this.getCoord().getZ() && HitBox.collisionDroite(hitBox, obs.getHitbox()) && HitBox.collisionGauche(hitBox, obs.getHitbox())){
+        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;
                 }
@@ -123,7 +133,7 @@ public class Character extends Entity{
         }obstacleBeneath = obsMin;
     }
 
-    public void checkIfNextToWall(){
+    /*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;
@@ -138,7 +148,7 @@ public class Character extends Entity{
         
         
 
-    }
+    }*/
 
     public void resetCommand(){
         for (String key : tableCommande.keySet()){
@@ -148,8 +158,9 @@ public class Character extends Entity{
 
     public void evolveCharacter(){
         getGameCommand();
-        checkIfNextToWall();
-        checkIfOnGround();
+        collisionGestion();
+        //checkIfNextToWall();
+        //checkIfOnGround();
         //checkIfNextToWall();
         deplacements();
         //checkIfNextToWall();
diff --git a/MAVENProject/src/main/java/environnement/HitBox.java b/MAVENProject/src/main/java/environnement/HitBox.java
index aaed05965d09272715c491ad9b5d3daf79208166..a0218eae6d42767d5c723f012e7c7db32767728d 100644
--- a/MAVENProject/src/main/java/environnement/HitBox.java
+++ b/MAVENProject/src/main/java/environnement/HitBox.java
@@ -47,10 +47,10 @@ 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
+        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);
@@ -59,11 +59,11 @@ public class HitBox {
     }
 
     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/jeu/Jeu.java b/MAVENProject/src/main/java/jeu/Jeu.java
index 83cbab2da7224afc946516784db4f2742b2af898..8e9dff0a0771f769db78a3bea72ec319cffc7535 100644
--- a/MAVENProject/src/main/java/jeu/Jeu.java
+++ b/MAVENProject/src/main/java/jeu/Jeu.java
@@ -116,6 +116,7 @@ public class Jeu implements Game{
         boolean Jump = command.get("Jump");
         boolean Attack = command.get("Attack");
 
+
        
         //perso evolue dans le jeu (en actualisant ses coordonnees)
         gameCharacter.evolveCharacter();
diff --git a/MAVENProject/src/main/java/map/Obstacle.java b/MAVENProject/src/main/java/map/Obstacle.java
index 8cc4e2067000cda771135d26830aa63b3364a357..1672d91d56002b1584e670fcd017cf47f8d0b5f1 100644
--- a/MAVENProject/src/main/java/map/Obstacle.java
+++ b/MAVENProject/src/main/java/map/Obstacle.java
@@ -1,5 +1,6 @@
 package map;
 
+import java.util.HashMap;
 import java.util.List;
 import entity.Entity;
 import environnement.HitBox;
@@ -41,17 +42,18 @@ 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()){
-            if (HitBox.collisionDroite(charac.getHitBox(),charac.getObstacleBeneath().getHitbox()) && HitBox.collisionGauche(charac.getHitBox(),charac.getObstacleBeneath().getHitbox()) && HitBox.collisionBas(charac.getObstacleBeneath().getHitbox(),charac.getHitBox())) {
+            if (collisionMap.get("collision_droite") && collisionMap.get("collision_gauche") && !collisionMap.get("collision_bas")) {
                 return true;
             }
         }else{
-            if (HitBox.collisionBas(charac.getObstacleBeneath().getHitbox(),charac.getHitBox())) return true;
+            if (!collisionMap.get("collision_bas")) return true;
         }
         return false;
     }
 
-    public static Boolean collisionGauche(Entity charac,List<Obstacle> list){
+    /*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);
@@ -73,5 +75,5 @@ public class Obstacle {
         }
         charac.setObstacleNextTo(null);
         return false;
-    }
+    }*/
 }