diff --git a/MAVENProject/src/main/java/entity/Character.java b/MAVENProject/src/main/java/entity/Character.java
index 0b0d3ccfd3547c2232d5fa7cd7f88a029a3bc180..3aab51aed6667614f2e9a97c235a247fed08004c 100644
--- a/MAVENProject/src/main/java/entity/Character.java
+++ b/MAVENProject/src/main/java/entity/Character.java
@@ -1,6 +1,7 @@
 package entity;
 
 import environnement.Coordonnees;
+import environnement.HitBox;
 import environnement.Physique;
 import jeu.Jeu;
 
@@ -10,12 +11,15 @@ public class Character extends Entity{
     private double vitesseActuZ = 0;
     private final double impulsionSaut;
     private double masse;
+    private HitBox charaterHitBox;
+    private final double entityWIDTH = 30;
+    private final double entityHEIGHT= 60;
 
     public Character(Coordonnees c,double vitesseMax,double m,double impSaut){
         super(c,vitesseMax);
         this.masse = m;
         this.impulsionSaut = impSaut;
-
+        this.charaterHitBox = new HitBox(c,entityHEIGHT,entityWIDTH);
     }
     @Override
     public void deplacements(double commandX,double commandZ,int alpha){ // alpha indique si il est au sol ou non, il vaut 0 ou 1 en fonction
@@ -68,6 +72,13 @@ public class Character extends Entity{
     public double getImpulsionSaut() {
         return impulsionSaut;
     }
-
+    @Override
+    public double getEntityWIDTH() {
+        return this.entityWIDTH;
+    }
+    @Override
+    public double getEntityHEIGHT() {
+        return this.entityHEIGHT;
+    }
     
 }
diff --git a/MAVENProject/src/main/java/entity/Entity.java b/MAVENProject/src/main/java/entity/Entity.java
index dd73764b22c20391756533022a67c80d9a8a498a..8ac1a15b70e26e68f68c03090a09d27a878255d6 100644
--- a/MAVENProject/src/main/java/entity/Entity.java
+++ b/MAVENProject/src/main/java/entity/Entity.java
@@ -6,6 +6,9 @@ public abstract class Entity {
     private Coordonnees coord;
     final double vitesseMax;
 
+    private final double entityWIDTH = 10;
+    private final double entityHEIGHT = 10;
+
     public Entity(Coordonnees c,double vitesseMax){
         this.coord = c;
         this.vitesseMax = vitesseMax;
@@ -18,5 +21,11 @@ public abstract class Entity {
     public void setCoord(Coordonnees coord) {
         this.coord = coord;
     }
+    public double getEntityWIDTH() {
+        return entityWIDTH;
+    }
+    public double getEntityHEIGHT() {
+        return entityHEIGHT;
+    }
     
 }
diff --git a/MAVENProject/src/main/java/environnement/Coordonnees.java b/MAVENProject/src/main/java/environnement/Coordonnees.java
index 9ae4f99c978c169741d0414b565d5293bc32df66..35f8e8efd0f47d6f2b47ff6ebc84a81dc2ea4420 100644
--- a/MAVENProject/src/main/java/environnement/Coordonnees.java
+++ b/MAVENProject/src/main/java/environnement/Coordonnees.java
@@ -23,14 +23,4 @@ public class Coordonnees {
     public double getZ() {
         return z;
     }
-
-    public void evolveX(double var){
-        // evolution des coordonnees en x
-        this.x += var;
-    }
-
-    public void evolveZ(double var){
-        // evolution des coordonnees en z
-        this.z += var;
-    }
 }
diff --git a/MAVENProject/src/main/java/environnement/HitBox.java b/MAVENProject/src/main/java/environnement/HitBox.java
new file mode 100644
index 0000000000000000000000000000000000000000..dba83a7bf12545250bd2511f97f52cbb1370a800
--- /dev/null
+++ b/MAVENProject/src/main/java/environnement/HitBox.java
@@ -0,0 +1,41 @@
+package environnement;
+
+import java.util.HashMap;
+
+public class HitBox {
+    //private final Coordonnees centre;
+    private HashMap<String, Coordonnees> extremites = new HashMap<String,Coordonnees>();
+    private static double defaultUnit = 10;
+
+    public HitBox(Coordonnees c){
+        extremites.put("HautDroite",new Coordonnees(c.getX()+defaultUnit/2,c.getZ()-defaultUnit/2));
+        extremites.put("BasDroite",new Coordonnees(c.getX()+defaultUnit/2,c.getZ()+defaultUnit/2));
+        extremites.put("HautGauche",new Coordonnees(c.getX()-defaultUnit/2,c.getZ()-defaultUnit/2));
+        extremites.put("BasGauche",new Coordonnees(c.getX()-defaultUnit/2,c.getZ()+defaultUnit/2));
+    }
+
+    public HitBox(Coordonnees c , double Height , double Width){
+        extremites.put("HautDroite",new Coordonnees(c.getX()+Width/2,c.getZ()-Height/2));
+        extremites.put("BasDroite",new Coordonnees(c.getX()+Width/2,c.getZ()+Height/2));
+        extremites.put("HautGauche",new Coordonnees(c.getX()-Width/2,c.getZ()-Height/2));
+        extremites.put("BasGauche",new Coordonnees(c.getX()-Width/2,c.getZ()+Height/2));
+    }
+
+    public static int getDefaultUnit() {
+        return (int)defaultUnit;
+    }
+
+    public static Boolean Collision(HitBox A, HitBox B){ // lignes sautées pour raison de lisibilité
+        return A.extremites.get("HautDroite").getX() >= B.extremites.get("BasGauche").getX()
+                && A.extremites.get("HautDroite").getZ() <= B.extremites.get("BasGauche").getZ()
+                ||
+                A.extremites.get("BasDroite").getX() >= B.extremites.get("HautGauche").getX()
+                        && A.extremites.get("BasDroite").getZ() >= B.extremites.get("HautGauche").getZ()
+                ||
+                A.extremites.get("HautGauche").getX() <= B.extremites.get("BasDroite").getX()
+                        && A.extremites.get("HautGauche").getZ() <= B.extremites.get("BasDroite").getZ()
+                ||
+                A.extremites.get("BasGauche").getX() <= B.extremites.get("HautDroite").getX()
+                        && A.extremites.get("BasGauche").getZ() >= B.extremites.get("HautDroite").getZ();
+    }
+}
diff --git a/MAVENProject/src/main/java/environnement/Obstacle.java b/MAVENProject/src/main/java/environnement/Obstacle.java
index 570904dae15e26b22a1fe77f9ff83d80c37677c5..ddea563aca6d8263291d2d53210e53578d239076 100644
--- a/MAVENProject/src/main/java/environnement/Obstacle.java
+++ b/MAVENProject/src/main/java/environnement/Obstacle.java
@@ -1,22 +1,6 @@
 package environnement;
 
-import java.util.HashMap;
 
 public class Obstacle {
 
-    //private final Coordonnees centre;
-    private HashMap<String, Coordonnees> extremites;
-    private static int defaultUnit = 10;
-
-    public Obstacle(Coordonnees c){
-        HashMap<String, Coordonnees> extremites = new HashMap<String,Coordonnees>();
-        extremites.put("DH",new Coordonnees(c.getX()+(double)defaultUnit/2,c.getZ()-(double)defaultUnit/2));
-        extremites.put("DB",new Coordonnees(c.getX()+(double)defaultUnit/2,c.getZ()+(double)defaultUnit/2));
-        extremites.put("GH",new Coordonnees(c.getX()-(double)defaultUnit/2,c.getZ()-(double)defaultUnit/2));
-        extremites.put("GB",new Coordonnees(c.getX()-(double)defaultUnit/2,c.getZ()+(double)defaultUnit/2));
-    }
-
-    public int getDefaultUnit() {
-        return defaultUnit;
-    }
 }
diff --git a/MAVENProject/src/main/java/jeu/Controller.java b/MAVENProject/src/main/java/jeu/Controller.java
index 0e7a39e6b9af244dd230a4f59ed0b5a96346353d..0f16ab1422c335ce15ec2113be16439308c7d4dd 100644
--- a/MAVENProject/src/main/java/jeu/Controller.java
+++ b/MAVENProject/src/main/java/jeu/Controller.java
@@ -3,12 +3,12 @@ package jeu;
 import engine.GameController;
 
 import java.awt.event.KeyEvent;
-import java.util.ArrayList;
 import java.util.HashMap;
 
 public class Controller implements GameController{
 
     private boolean isRightPressed, isLeftPressed, isSpacePressed;
+    private HashMap<String,Boolean> cmd = new HashMap<String,Boolean>();
     /*
     * commande en cours
     */
@@ -25,7 +25,6 @@ public class Controller implements GameController{
      */
     @Override
     public HashMap<String,Boolean> getCommand() {
-        HashMap<String,Boolean> cmd = new HashMap<String,Boolean>();
         cmd.put("Right",isRightPressed);
         cmd.put("Left",isLeftPressed);
         cmd.put("Jump",isSpacePressed);
@@ -37,23 +36,17 @@ public class Controller implements GameController{
 
         switch (e.getKeyCode()) {
             // si on appuie sur une touche ci dessous le boolean devient vraie.
-            case KeyEvent.VK_RIGHT: isRightPressed = true; break;
-            case KeyEvent.VK_LEFT: isLeftPressed = true; break;
-            case KeyEvent.VK_SPACE: isSpacePressed = true; break;
+            case KeyEvent.VK_RIGHT -> isRightPressed = true;
+            case KeyEvent.VK_LEFT -> isLeftPressed = true;
+            case KeyEvent.VK_SPACE -> isSpacePressed = true;
         }
     }
     @Override
     public void keyReleased(KeyEvent e) {
-        switch(e.getKeyCode()) {
-            case KeyEvent.VK_RIGHT:
-                isRightPressed = false;
-                break;
-            case KeyEvent.VK_LEFT:
-                isLeftPressed = false;
-                break;
-            case KeyEvent.VK_SPACE:
-                isSpacePressed = false;
-                break;
+        switch (e.getKeyCode()) {
+            case KeyEvent.VK_RIGHT -> isRightPressed = false;
+            case KeyEvent.VK_LEFT -> isLeftPressed = false;
+            case KeyEvent.VK_SPACE -> isSpacePressed = false;
         }
     }
     @Override
diff --git a/MAVENProject/src/main/java/jeu/Painter.java b/MAVENProject/src/main/java/jeu/Painter.java
index 0a63a12b9765a4cbb15f56b743d577708454c561..0c48be8a9d0e38f8038afd87266906c0a1d0cd51 100644
--- a/MAVENProject/src/main/java/jeu/Painter.java
+++ b/MAVENProject/src/main/java/jeu/Painter.java
@@ -1,10 +1,13 @@
 package jeu;
 
 import engine.GamePainter;
+import entity.Character;
 import environnement.Obstacle;
 
 import java.awt.*;
 import java.awt.image.BufferedImage;
+
+import static environnement.HitBox.getDefaultUnit;
 import static jeu.Jeu.charac;
 import static jeu.Jeu.getCoordSol;
 
@@ -21,8 +24,10 @@ public class Painter implements GamePainter{
     public void draw(BufferedImage im) {
         Graphics2D crayon = (Graphics2D) im.getGraphics();
         crayon.setColor(Color.blue);
-        drawCharacter(crayon);
+        drawCharacter(crayon, charac);
         drawSol(crayon);
+        crayon.setColor(Color.red);
+        //drawQuadrillage(crayon);
     }
 
     @Override
@@ -35,10 +40,10 @@ public class Painter implements GamePainter{
         return HEIGHT;
     }
 
-    private void drawCharacter(Graphics2D crayon){
+    private void drawCharacter(Graphics2D crayon, Character charac){
         int x = (int) charac.getCoord().getX();
         int y = (int) charac.getCoord().getZ();
-        crayon.fillRect(x-15,y-30,30,60);
+        crayon.fillRect(x-15,y-30, (int) charac.getEntityWIDTH(),(int) charac.getEntityHEIGHT());
     }
 
     private void drawObstacle(Graphics2D crayon, Obstacle obstacle){
@@ -46,6 +51,16 @@ public class Painter implements GamePainter{
     }
 
     private void drawSol(Graphics2D crayon){
-        crayon.drawLine(0,(int) getCoordSol().getZ(),getWidth(),(int) getCoordSol().getZ());
+        crayon.drawLine(0,(int) getCoordSol().getZ(),WIDTH,(int) getCoordSol().getZ());
+    }
+
+    private void drawQuadrillage(Graphics2D crayon){ //pour le test de la classe obstacle
+        int taille = getDefaultUnit();
+        for (int i=1;i<(double) HEIGHT/taille;i++) {
+            crayon.drawLine(0, i * taille, WIDTH, i * taille);
+        }
+        for (int j =0;j<(double) WIDTH/taille;j++) {
+            crayon.drawLine(j * taille, 0, j * taille,HEIGHT );
+        }
     }
 }