From ed10ca7cff4d5116e47ef9444a0d06cdadddcb19 Mon Sep 17 00:00:00 2001 From: Azurlors <florianrichard2001@gmail.com> Date: Thu, 8 Dec 2022 00:57:20 +0100 Subject: [PATCH] De rien pour la Cam --- .../src/main/java/engine/DrawingPanel.java | 13 +++++-- .../src/main/java/entity/Character.java | 3 -- MAVENProject/src/main/java/jeu/Jeu.java | 11 ++++-- MAVENProject/src/main/java/jeu/Painter.java | 35 +++++++++++-------- 4 files changed, 39 insertions(+), 23 deletions(-) diff --git a/MAVENProject/src/main/java/engine/DrawingPanel.java b/MAVENProject/src/main/java/engine/DrawingPanel.java index 9586bce..b98995b 100644 --- a/MAVENProject/src/main/java/engine/DrawingPanel.java +++ b/MAVENProject/src/main/java/engine/DrawingPanel.java @@ -9,6 +9,7 @@ import java.awt.Graphics; import java.awt.image.BufferedImage; import javax.swing.JPanel; +import static jeu.Jeu.getGameCharacter; public class DrawingPanel extends JPanel { @@ -89,8 +90,16 @@ public class DrawingPanel extends JPanel { */ public void paint(Graphics g) { super.paint(g); - g.drawImage(this.currentImage, 0, 0, getWidth(), getHeight(), 0, 0, - getWidth(), getHeight(), null); + if (getGameCharacter().getCoord() != null){ + int x = (int) getGameCharacter().getCoord().getX(); + int z = (int) getGameCharacter().getCoord().getZ(); + g.drawImage(this.currentImage, 0,0, getWidth(), getHeight(),0, 0, getWidth(), getHeight(), null); + } + else { + g.drawImage(this.currentImage, 0,0, getWidth(), getHeight()+100, 0, 0, + getWidth(), getHeight(), null); + System.out.println("test"); + } } } diff --git a/MAVENProject/src/main/java/entity/Character.java b/MAVENProject/src/main/java/entity/Character.java index 64955ae..1c4ee7e 100644 --- a/MAVENProject/src/main/java/entity/Character.java +++ b/MAVENProject/src/main/java/entity/Character.java @@ -27,14 +27,11 @@ public class Character extends Entity{ private Map<String,Double> tableCommande; //table des commandes du perso //private BufferedImage sprite; - - public Character(Coordonnees c, double vitesseMax, double m, double impSaut){ super(c,vitesseMax,30,60,1); // comme tous les entities ont une hitbox, j'ai factorise this.masse = m; this.impulsionSaut = impSaut; - this.tableCommande = new HashMap<>(); tableCommande.put("CommandX",(double)0); tableCommande.put("CommandZ",(double)0); diff --git a/MAVENProject/src/main/java/jeu/Jeu.java b/MAVENProject/src/main/java/jeu/Jeu.java index 0cbeb33..1d7dfd5 100644 --- a/MAVENProject/src/main/java/jeu/Jeu.java +++ b/MAVENProject/src/main/java/jeu/Jeu.java @@ -23,6 +23,11 @@ public class Jeu implements Game{ //coordonnees du sol //private static Coordonnees coordSol = new Coordonnees(200,700); //coordonnees du sol (en realite juste Z nous interesse) + + //Coordonees de debut du personnage + static final double zdebut = 300; + static final double xdebut = 300; + //perso static Character gameCharacter; @@ -107,7 +112,7 @@ public class Jeu implements Game{ //on charge le perso (a la fin du constructeur, cest important par rapport a obstacleTable, sinon y'a des pbs de "causalite") gameCharacterLoader = new CharacterLoader(characterSkinPath,new Character(new Coordonnees(300, 300), 2000, 1,600000)); - gameCharacter = new Character(new Coordonnees(300, 300), 2000, 1,600000); + gameCharacter = new Character(new Coordonnees(xdebut, zdebut), 2000, 1,600000); //on remplit la map des frames Map<String,Integer> tempMap = gameCharacterLoader.getPathTable(); @@ -174,11 +179,11 @@ public class Jeu implements Game{ //si on a change de mouvement, le jeu doit redemarrer a la premiere frame correspondante //System.out.println(numberOfMovement); - if (previousMovement != movement){numberOfMovement = 1;nbBeforeFramechgt = nbIterationPerFrame;} + if ( !previousMovement.equals(movement)){numberOfMovement = 1;nbBeforeFramechgt = nbIterationPerFrame;} if (numberOfMovement == gameCharacterLoader.getPathTable().get(movement)){ //System.out.println(movement); //characterNotMoving = true; - if (movement == "character_attack"){ + if (movement.equals("character_attack")){ characterAttacking = false; } } diff --git a/MAVENProject/src/main/java/jeu/Painter.java b/MAVENProject/src/main/java/jeu/Painter.java index 04558e9..4cdfb96 100644 --- a/MAVENProject/src/main/java/jeu/Painter.java +++ b/MAVENProject/src/main/java/jeu/Painter.java @@ -25,31 +25,36 @@ public class Painter implements GamePainter{ public static Obstacle test = new Obstacle(new HitBox(new Coordonnees(300,550),32,128)); + private static Coordonnees coordonneesCam; + private int xCam; + private int zCam; + public Painter() { } @Override public void draw(BufferedImage im) { + coordonneesCam = gameCharacter.getCoord(); + xCam = -WIDTH/2 + (int) coordonneesCam.getX(); + zCam = -HEIGHT/2 +(int) coordonneesCam.getZ(); + Graphics2D crayon = (Graphics2D) im.getGraphics(); crayon.setColor(Color.blue); drawCharacter(crayon,gameCharacterLoader.getImageCharacter()); - //drawQuadrillage(crayon);*/ drawMap(crayon); drawSol(crayon); - drawObstacleBis(crayon,test,"plateforme.png"); + drawObstacleBis(crayon,test,"plateforme.png"); // A changer drawLifePoints(crayon); drawMonsters(crayon); } private void drawCharacter(Graphics2D crayon,Image imageCharac){ - int x = (int) gameCharacter.getCoord().getX(); - int y = (int) gameCharacter.getCoord().getZ(); - crayon.fillRect(x-(int) gameCharacter.getEntityWIDTH()/2,y-(int) gameCharacter.getEntityHEIGHT()/2, (int) gameCharacter.getEntityWIDTH(),(int) gameCharacter.getEntityHEIGHT()); - crayon.drawRect(x-500,y-500, 1000,1000); - crayon.drawImage(imageCharac, x-(int) gameCharacter.getEntityWIDTH()/2-10, y- (int) gameCharacter.getEntityHEIGHT()/2-3, null, null); + crayon.fillRect(WIDTH/2-(int) gameCharacter.getEntityWIDTH()/2,WIDTH/2-(int) gameCharacter.getEntityHEIGHT()/2, (int) gameCharacter.getEntityWIDTH(),(int) gameCharacter.getEntityHEIGHT()); + crayon.drawRect(WIDTH/2-500,WIDTH/2-500, 1000,1000); + crayon.drawImage(imageCharac, WIDTH/2- (int) gameCharacter.getEntityWIDTH()/2-10, HEIGHT/2 - (int) gameCharacter.getEntityHEIGHT()/2-3, null, null); } @@ -78,10 +83,10 @@ public class Painter implements GamePainter{ Coordonnees hg = extremites.get("HautGauche"); Coordonnees bg = extremites.get("BasGauche"); if (HitBox.collision(gameCharacter.getVoisinage(), obstacle.getHitbox()))crayon.setColor(Color.green); - crayon.drawLine((int)hd.getX(),(int)hd.getZ(),(int)bd.getX(),(int)bd.getZ()); - crayon.drawLine((int)bd.getX(),(int)bd.getZ(),(int)bg.getX(),(int)bg.getZ()); - crayon.drawLine((int)bg.getX(),(int)bg.getZ(),(int)hg.getX(),(int)hg.getZ()); - crayon.drawLine((int)hg.getX(),(int)hg.getZ(),(int)hd.getX(),(int)hd.getZ()); + crayon.drawLine((int)hd.getX() - xCam,(int)hd.getZ() - zCam,(int)bd.getX() - xCam,(int)bd.getZ() - zCam); + crayon.drawLine((int)bd.getX() - xCam,(int)bd.getZ() - zCam,(int)bg.getX() - xCam,(int)bg.getZ() - zCam); + crayon.drawLine((int)bg.getX() - xCam,(int)bg.getZ() - zCam,(int)hg.getX() - xCam,(int)hg.getZ() - zCam); + crayon.drawLine((int)hg.getX() - xCam,(int)hg.getZ() - zCam,(int)hd.getX() - xCam,(int)hd.getZ() - zCam); } /*private void drawCoffre(Graphics2D crayon, Coffre coffre){ @@ -102,7 +107,7 @@ public class Painter implements GamePainter{ HitBox hitBox = loader.getObstacle().getHitbox(); int z = (int) hitBox.getCentre().getZ(); for (int x = 0;x<3000;x+=128) { - crayon.drawImage(loader.getImageObstacle(),x,z ,null,null); + crayon.drawImage(loader.getImageObstacle(),x -xCam ,z - zCam,null,null); } } @@ -132,7 +137,7 @@ public class Painter implements GamePainter{ HitBox hitBox = loader.getObstacle().getHitbox(); int z = (int) hitBox.getCentre().getZ(); int x = (int) hitBox.getCentre().getX(); - crayon.drawImage(loader.getImageObstacle(), x - (int) hitBox.getWidth()/2,z - (int) hitBox.getHeight()/2,null,null); + crayon.drawImage(loader.getImageObstacle(), x - (int) hitBox.getWidth()/2 -xCam,z - (int) hitBox.getHeight()/2 -zCam,null,null); } /*private void drawCoffreBis(Graphics2D crayon, Coffre coffre, String nom){ @@ -152,9 +157,9 @@ public class Painter implements GamePainter{ x = (int)monster.getCoord().getX(); z = (int)monster.getCoord().getZ(); - crayon.drawRect(x-300, z-300, 600, 600); + crayon.drawRect(x-300 - xCam, z-300 - zCam, 600, 600); if (HitBox.collision(gameCharacter.getHitBox(),monster.getHitBox()))crayon.setColor(Color.red); - crayon.fillRect(x-(int)monster.getEntityWIDTH()/2, z-(int)monster.getEntityHEIGHT()/2, (int)monster.getEntityWIDTH(), (int)monster.getEntityHEIGHT()); + crayon.fillRect(x-(int)monster.getEntityWIDTH()/2 - xCam, z-(int)monster.getEntityHEIGHT()/2 - zCam, (int)monster.getEntityWIDTH(), (int)monster.getEntityHEIGHT()); } } -- GitLab