Skip to content
Snippets Groups Projects
Commit dc37858d authored by Louis's avatar Louis
Browse files

perso affiche en statique (j'ai laisse le rectangle bleu pour pouvoir le dimensionner correctement)

je travaillerai son animation demain surement. classe CharacterLoader creee (pour creer le perso du coup)
par contre je sais pas si c'est la classe jeu qui doit y faire appel, donc ca y est pour l'instant mais ca peut changer. LM
parent bf95b19d
Branches
No related tags found
No related merge requests found
...@@ -8,6 +8,7 @@ import environnement.HitBox; ...@@ -8,6 +8,7 @@ import environnement.HitBox;
import environnement.Physique; import environnement.Physique;
import jeu.Jeu; import jeu.Jeu;
public class Character extends Entity{ public class Character extends Entity{
private double vitesseActuX = 0; // vitesse actuelle supposée nulle au départ private double vitesseActuX = 0; // vitesse actuelle supposée nulle au départ
...@@ -18,6 +19,7 @@ public class Character extends Entity{ ...@@ -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 characterWIDTH = 30; // pour l'instant je les ai renommes, ca peut changer
private final double characterHEIGHT= 60; private final double characterHEIGHT= 60;
private Map<String,Double> tableCommande; //table des commandes du perso private Map<String,Double> tableCommande; //table des commandes du perso
//private BufferedImage sprite;
public Character(Coordonnees c,double vitesseMax,double m,double impSaut){ public Character(Coordonnees c,double vitesseMax,double m,double impSaut){
...@@ -28,6 +30,7 @@ public class Character extends Entity{ ...@@ -28,6 +30,7 @@ public class Character extends Entity{
this.tableCommande = new HashMap<String,Double>(); this.tableCommande = new HashMap<String,Double>();
tableCommande.put("CommandX",(double)0); tableCommande.put("CommandX",(double)0);
tableCommande.put("CommandZ",(double)0); tableCommande.put("CommandZ",(double)0);
//sprite = CharacterLoader.getImageCharacter();
} }
@Override @Override
......
...@@ -9,22 +9,24 @@ import java.util.Map; ...@@ -9,22 +9,24 @@ import java.util.Map;
import entity.Character; import entity.Character;
import engine.Game; import engine.Game;
import environnement.Coordonnees; import environnement.Coordonnees;
import loaders.CharacterLoader;
public class Jeu implements Game{ public class Jeu implements Game{
private static Coordonnees coordSol = new Coordonnees(200,700); //coordonnees du sol (en realite juste Z nous interesse) 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; 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) { public Jeu(String source) {
BufferedReader helpReader; BufferedReader helpReader;
characterSkinPath = "E:\\Bureau\\Programmation\\Projet_ACL\\acl-project\\Frames_perso\\pixil-frame-0.png"; // path premiere frame
/*A = new ArrayList<Double>(); /*A = new ArrayList<Double>();
n = 0;*/ n = 0;*/
gameCharacterLoader = new CharacterLoader(characterSkinPath,new Character(new Coordonnees(200, 300), 2000, 1,600000));
charac = new entity.Character(new Coordonnees(200, 300), 2000, 1,600000); gameCharacter = gameCharacterLoader.getGameCharacter();
try { try {
helpReader = new BufferedReader(new FileReader(source)); helpReader = new BufferedReader(new FileReader(source));
String line; String line;
...@@ -46,8 +48,8 @@ public class Jeu implements Game{ ...@@ -46,8 +48,8 @@ public class Jeu implements Game{
@Override @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. 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("Execute "+command);
System.out.println(charac.getCoord().getX()); System.out.println(gameCharacter.getCoord().getX());
System.out.println(charac.getCoord().getZ()); System.out.println(gameCharacter.getCoord().getZ());
/*double comX,comZ; /*double comX,comZ;
int a = 1; int a = 1;
...@@ -63,17 +65,17 @@ public class Jeu implements Game{ ...@@ -63,17 +65,17 @@ public class Jeu implements Game{
if (Right && Left){} if (Right && Left){}
else if (Right) { else if (Right) {
comX = charac.getVitesseMax(); comX = gameCharacter.getVitesseMax();
} }
else if (Left) { else if (Left) {
comX = -charac.getVitesseMax(); comX = -gameCharacter.getVitesseMax();
} }
if (Jump) { if (Jump) {
if (charac.getCoord().getZ() < coordSol.getZ())a = 0; if (gameCharacter.getCoord().getZ() < coordSol.getZ())a = 0;
else if (charac.getVitesseActuZ() == 0){comZ = charac.getImpulsionSaut();/*A.add(charac.getCoord().getZ());n++;/} else if (gameCharacter.getVitesseActuZ() == 0){comZ = gameCharacter.getImpulsionSaut();/*A.add(gameCharacter.getCoord().getZ());n++;/}
} }
else { 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; a = 0;
} }
else{ else{
...@@ -81,7 +83,7 @@ public class Jeu implements Game{ ...@@ -81,7 +83,7 @@ public class Jeu implements Game{
} }
}*/ }*/
charac.evolveCharacter(); gameCharacter.evolveCharacter();
} }
@Override @Override
......
...@@ -7,8 +7,10 @@ import environnement.Obstacle; ...@@ -7,8 +7,10 @@ import environnement.Obstacle;
import java.awt.*; import java.awt.*;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import static environnement.HitBox.getDefaultUnit; 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; import static jeu.Jeu.getCoordSol;
public class Painter implements GamePainter{ public class Painter implements GamePainter{
...@@ -24,7 +26,7 @@ public class Painter implements GamePainter{ ...@@ -24,7 +26,7 @@ public class Painter implements GamePainter{
public void draw(BufferedImage im) { public void draw(BufferedImage im) {
Graphics2D crayon = (Graphics2D) im.getGraphics(); Graphics2D crayon = (Graphics2D) im.getGraphics();
crayon.setColor(Color.blue); crayon.setColor(Color.blue);
drawCharacter(crayon, charac); drawCharacter(crayon, gameCharacter,gameCharacterLoader.getImageCharacter());
drawSol(crayon); drawSol(crayon);
crayon.setColor(Color.red); crayon.setColor(Color.red);
//drawQuadrillage(crayon); //drawQuadrillage(crayon);
...@@ -40,10 +42,12 @@ public class Painter implements GamePainter{ ...@@ -40,10 +42,12 @@ public class Painter implements GamePainter{
return HEIGHT; return HEIGHT;
} }
private void drawCharacter(Graphics2D crayon, Character charac){ private void drawCharacter(Graphics2D crayon, Character charac,Image imageCharac){
int x = (int) charac.getCoord().getX(); int x = (int) gameCharacter.getCoord().getX();
int y = (int) charac.getCoord().getZ(); int y = (int) gameCharacter.getCoord().getZ();
crayon.fillRect(x-15,y-30, (int) charac.getEntityWIDTH(),(int) charac.getEntityHEIGHT()); 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){ private void drawObstacle(Graphics2D crayon, Obstacle obstacle){
......
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;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment