diff --git a/MAVENProject/src/main/java/entity/Character.java b/MAVENProject/src/main/java/entity/Character.java
index b7c696df976a1d06babdd08ee61e7b101b0234fa..ef49e4d4e2d9b1e743964d19f097eadc10206d00 100644
--- a/MAVENProject/src/main/java/entity/Character.java
+++ b/MAVENProject/src/main/java/entity/Character.java
@@ -8,6 +8,7 @@ import environnement.HitBox;
 import environnement.Physique;
 import jeu.Jeu;
 
+
 public class Character extends Entity{
 
     private double vitesseActuX = 0; // vitesse actuelle supposée nulle au départ
@@ -18,6 +19,7 @@ public class Character extends Entity{
     private final double characterWIDTH = 30; // pour l'instant je les ai renommes, ca peut changer
     private final double characterHEIGHT= 60;
     private Map<String,Double> tableCommande; //table des commandes du perso
+    //private BufferedImage sprite;
 
 
     public Character(Coordonnees c,double vitesseMax,double m,double impSaut){
@@ -28,6 +30,7 @@ public class Character extends Entity{
         this.tableCommande = new HashMap<String,Double>();
         tableCommande.put("CommandX",(double)0);
         tableCommande.put("CommandZ",(double)0);
+        //sprite = CharacterLoader.getImageCharacter();
         
     }
     @Override
diff --git a/MAVENProject/src/main/java/jeu/Jeu.java b/MAVENProject/src/main/java/jeu/Jeu.java
index 42142ea478bdb288a89b83338d0d43359eb3f719..4ddbf2c602236dede0a0b48f85d8c19070c2b7d2 100644
--- a/MAVENProject/src/main/java/jeu/Jeu.java
+++ b/MAVENProject/src/main/java/jeu/Jeu.java
@@ -9,22 +9,24 @@ import java.util.Map;
 import entity.Character;
 import engine.Game;
 import environnement.Coordonnees;
+import loaders.CharacterLoader;
 
 public class Jeu implements Game{
 
     private static Coordonnees coordSol = new Coordonnees(200,700); //coordonnees du sol (en realite juste Z nous interesse)
-    static Character charac;
+    static Character gameCharacter;
     private static Map<String,Boolean> directionJeu;
-
+    static CharacterLoader gameCharacterLoader;
+    String characterSkinPath; // jsp si c'est le jeu qui doit gerer ca, au pire vous pouvez changer
     
 
     public Jeu(String source) {
         BufferedReader helpReader;
-
+        characterSkinPath = "E:\\Bureau\\Programmation\\Projet_ACL\\acl-project\\Frames_perso\\pixil-frame-0.png"; // path premiere frame
         /*A = new ArrayList<Double>();
         n = 0;*/
-
-        charac = new entity.Character(new Coordonnees(200, 300), 2000, 1,600000);
+        gameCharacterLoader = new CharacterLoader(characterSkinPath,new Character(new Coordonnees(200, 300), 2000, 1,600000));
+        gameCharacter = gameCharacterLoader.getGameCharacter();
         try {
             helpReader = new BufferedReader(new FileReader(source));
             String line;
@@ -46,8 +48,8 @@ public class Jeu implements Game{
     @Override
     public void evolve(HashMap<String,Boolean> command) {  // command est sous la forme list de Boolean qui represente les touches préssées. Voir Controller pour la compositions de cet list.
         System.out.println("Execute "+command);
-        System.out.println(charac.getCoord().getX());
-        System.out.println(charac.getCoord().getZ());
+        System.out.println(gameCharacter.getCoord().getX());
+        System.out.println(gameCharacter.getCoord().getZ());
         /*double comX,comZ;
         int a = 1;
         
@@ -63,17 +65,17 @@ public class Jeu implements Game{
 
         if (Right && Left){}
         else if (Right) {
-            comX = charac.getVitesseMax();
+            comX = gameCharacter.getVitesseMax();
         }
         else if (Left) {
-            comX = -charac.getVitesseMax();
+            comX = -gameCharacter.getVitesseMax();
         }
         if (Jump) {
-            if (charac.getCoord().getZ() < coordSol.getZ())a = 0;
-        else if (charac.getVitesseActuZ() == 0){comZ = charac.getImpulsionSaut();/*A.add(charac.getCoord().getZ());n++;/}
+            if (gameCharacter.getCoord().getZ() < coordSol.getZ())a = 0;
+        else if (gameCharacter.getVitesseActuZ() == 0){comZ = gameCharacter.getImpulsionSaut();/*A.add(gameCharacter.getCoord().getZ());n++;/}
         }
         else {
-            if (charac.getCoord().getZ() < coordSol.getZ()) { //a retoucher, j'ai besoin d'autres choses pour avancer
+            if (gameCharacter.getCoord().getZ() < coordSol.getZ()) { //a retoucher, j'ai besoin d'autres choses pour avancer
                 a = 0; 
             }
             else{
@@ -81,7 +83,7 @@ public class Jeu implements Game{
             }
         
         }*/
-        charac.evolveCharacter();
+        gameCharacter.evolveCharacter();
     }
 
     @Override
diff --git a/MAVENProject/src/main/java/jeu/Painter.java b/MAVENProject/src/main/java/jeu/Painter.java
index 0c48be8a9d0e38f8038afd87266906c0a1d0cd51..e3f101da0bfe683a3a797ef2e53030ee940d8e2c 100644
--- a/MAVENProject/src/main/java/jeu/Painter.java
+++ b/MAVENProject/src/main/java/jeu/Painter.java
@@ -7,8 +7,10 @@ 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.gameCharacter;
+import static jeu.Jeu.gameCharacterLoader;
 import static jeu.Jeu.getCoordSol;
 
 public class Painter implements GamePainter{
@@ -24,7 +26,7 @@ public class Painter implements GamePainter{
     public void draw(BufferedImage im) {
         Graphics2D crayon = (Graphics2D) im.getGraphics();
         crayon.setColor(Color.blue);
-        drawCharacter(crayon, charac);
+        drawCharacter(crayon, gameCharacter,gameCharacterLoader.getImageCharacter());
         drawSol(crayon);
         crayon.setColor(Color.red);
         //drawQuadrillage(crayon);
@@ -40,10 +42,12 @@ public class Painter implements GamePainter{
         return HEIGHT;
     }
 
-    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, (int) charac.getEntityWIDTH(),(int) charac.getEntityHEIGHT());
+    private void drawCharacter(Graphics2D crayon, Character charac,Image imageCharac){
+        int x = (int) gameCharacter.getCoord().getX();
+        int y = (int) gameCharacter.getCoord().getZ();
+        crayon.fillRect(x-15,y-30, (int) gameCharacter.getEntityWIDTH(),(int) gameCharacter.getEntityHEIGHT());
+        crayon.drawImage(imageCharac, x-15, y-30, null, null);
+
     }
 
     private void drawObstacle(Graphics2D crayon, Obstacle obstacle){
diff --git a/MAVENProject/src/main/java/loaders/CharacterLoader.java b/MAVENProject/src/main/java/loaders/CharacterLoader.java
new file mode 100644
index 0000000000000000000000000000000000000000..bf04746eef0b845919c92abd6b10fe71298e47fc
--- /dev/null
+++ b/MAVENProject/src/main/java/loaders/CharacterLoader.java
@@ -0,0 +1,49 @@
+package loaders;
+
+import entity.Character;
+import java.awt.Image;
+import java.io.File;
+import java.io.IOException;
+
+import javax.imageio.ImageIO;
+import javax.swing.ImageIcon;
+
+public class CharacterLoader { // classe qui cree le perso
+    private Character gameCharacter; // perso a creer
+    private String skinPath; // chemin du skin a l'instant t du jeu
+    //private String nameImageOfSkin; // nom de l'image du skin (le truc fonctionne comme ca)
+    private Image imageCharacter;
+
+    public CharacterLoader(String path,Character charac){
+        gameCharacter = charac;
+        skinPath = path;
+        imageCharacter = new ImageIcon(path).getImage();
+    }
+
+    public void refreshImage(){
+        try {
+            imageCharacter = ImageIO.read(new File(skinPath));
+        } catch (IOException e) {
+
+            e.printStackTrace();
+        }
+    }
+
+    public Character getGameCharacter() {
+        return gameCharacter;
+    }
+
+    public String getSkinPath() {
+        return skinPath;
+    }
+
+    public Image getImageCharacter() {
+        return imageCharacter;
+    }
+
+    public void setSkinPath(String skinPath) {
+        this.skinPath = skinPath;
+    }
+
+    
+}