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; + } + + +}