From f49a7d0d481dfa1aadc5741657b652fb47ad12b5 Mon Sep 17 00:00:00 2001 From: Louis MALTERRE <malterre.louis@laposte.net> Date: Wed, 14 Dec 2022 20:40:52 +0100 Subject: [PATCH] coffres actives, methode clone pour character crees (pour protection du peros dans le code). un peu de menage fait. UML maj (pas complete) (mettez le a jour regulierement svp, car apres c est tjr moi qui l update et ca prend un bon ptit moment pour tout remettre a jour) LM --- MAVENProject/PlanUML.puml | 38 ++++++++++ .../src/main/java/engine/DrawingPanel.java | 3 +- .../src/main/java/entity/Character.java | 38 ++++------ MAVENProject/src/main/java/entity/Entity.java | 10 +-- MAVENProject/src/main/java/jeu/Jeu.java | 34 ++++----- MAVENProject/src/main/java/jeu/Painter.java | 36 ++++------ .../main/java/loaders/CharacterLoader.java | 1 - .../src/main/java/map/LevelManager.java | 69 ++++++++++--------- MAVENProject/src/main/java/start/Main.java | 1 - 9 files changed, 121 insertions(+), 109 deletions(-) diff --git a/MAVENProject/PlanUML.puml b/MAVENProject/PlanUML.puml index ac99dfa..420778b 100644 --- a/MAVENProject/PlanUML.puml +++ b/MAVENProject/PlanUML.puml @@ -235,4 +235,42 @@ class spotify.MP3{ + void displayMusic() } +class map.Coffre { + - HitBox hitBox + + boolean key + + HitBox getHitBox() +} + +class map.LevelManager{ + - BufferedImage[] levelSprite + - Level levelOne + - void importOutsideSprites() + + List<Obstacle> generateObstacleTable() + + List<Monster> generateMonsterTable() + + List<Coffre> generateCoffreTable() + + void update() + + Level getCurrentLevel() +} + +class map.Level{ + - int[][] lvlData + + int getSpriteIndex(int,int) + + int[][] getLevelData() +} + +class loaders.LoadSave{ + + static final String LEVEL_SPRITES + + static final String LEVEL_ONE + + static BufferedImage GetSpriteAtlas(String) + + static int[][] GetLevelData() +} + +class loaders.ObstacleLoader{ +- Image imageObstacle +- Obstacle obstacle ++ Image getImageObstacle() ++ Obstacle getObstacle() + +} + @enduml \ No newline at end of file diff --git a/MAVENProject/src/main/java/engine/DrawingPanel.java b/MAVENProject/src/main/java/engine/DrawingPanel.java index 56026bd..b253f6c 100644 --- a/MAVENProject/src/main/java/engine/DrawingPanel.java +++ b/MAVENProject/src/main/java/engine/DrawingPanel.java @@ -10,7 +10,7 @@ import java.awt.image.BufferedImage; import javax.swing.JPanel; import static jeu.Jeu.getGameCharacter; -import map.LevelManager; + public class DrawingPanel extends JPanel { /** @@ -36,7 +36,6 @@ public class DrawingPanel extends JPanel { /** * la taille des images */ - private LevelManager levelManager; private int width, height; /** diff --git a/MAVENProject/src/main/java/entity/Character.java b/MAVENProject/src/main/java/entity/Character.java index af3b566..5c4b1e6 100644 --- a/MAVENProject/src/main/java/entity/Character.java +++ b/MAVENProject/src/main/java/entity/Character.java @@ -18,7 +18,7 @@ import map.Coffre; import static jeu.Jeu.getObstacleTable; //import static jeu.Jeu.gameCharacter; -import static jeu.Jeu.getCoffreTable; + public class Character extends Entity{ @@ -45,8 +45,7 @@ public class Character extends Entity{ nbMaxFramesInvicible = 500; } - @Override - public void deplacements(){ // alpha indique si il est au sol ou non, il vaut 0 (en l'air) ou 1 (au sol) en fonction + private void deplacements(){ // alpha indique si il est au sol ou non, il vaut 0 (en l'air) ou 1 (au sol) en fonction double delta = Math.pow(10, -3); // pas de temps remis en secondes @@ -68,12 +67,12 @@ public class Character extends Entity{ direction = (int) Math.signum(vitesseActuX); } - vitesseActuZ = vitesseActuZ + 10*((1-alpha)*Physique.g - tableCommande.get("CommandZ"))*delta; + vitesseActuZ = vitesseActuZ + 8*((1-alpha)*Physique.g - tableCommande.get("CommandZ"))*delta; //System.out.println(vitesseActuZ); if (Math.abs(vitesseActuZ) > vitesseMax*500)vitesseActuZ = Math.signum(vitesseActuZ)*vitesseMax*500; } - public void collisionGestion(){ + private void collisionGestion(){ List<Obstacle> listeObstaclesInVoisinage = getObstacleTable(); //stocke l'obstacle avec lequel il y a eu collision HashMap<Obstacle,PositionCollision> collisionsPresentes = new HashMap<Obstacle,PositionCollision>(); @@ -91,14 +90,6 @@ public class Character extends Entity{ //on set alpha a 0 (on suppose qu'il est en l'air) alpha = 0; - /*if (this.hitBox.getExtremites().get("BasDroite").getZ()+entityHEIGHT/2-obstacleBeneath.getHitbox().getExtremites().get("HautDroite").getZ()>=-1 && this.hitBox.getExtremites().get("HautDroite").getX()>obstacleBeneath.getHitbox().getExtremites().get("BasGauche").getX() && this.hitBox.getExtremites().get("HautGauche").getX()<obstacleBeneath.getHitbox().getExtremites().get("BasDroite").getX()) { - - alpha = 1; - - } - else {*/ - //par defaut l'obstacle en dessous c'est le sol - //obstacleBeneath=Jeu.sol; //on parcourt pour tester si il est sur un block for (int i=0;i<collisionsPresentes.size();i++){ //si on trouve on sort de la boucle (pas besoin d'aller plus loin), on n'étudie qui si on ne donne pas de commande @@ -108,7 +99,6 @@ public class Character extends Entity{ if (collisionsPresentes.get(listeObstaclesInVoisinage.get(i)) == BAS ){ this.vitesseActuZ = 0; this.setCoord(new Coordonnees(this.getCoord().getX(), getObstacleTable().get(i).getHitbox().getExtremites().get("HautGauche").getZ()-entityHEIGHT/2)); - //obstacleBeneath=listeObstaclesInVoisinage.get(i); alpha = 1; break; @@ -144,10 +134,9 @@ public class Character extends Entity{ } - //celles du haut + //on gere celles du haut for (int i=0;i<collisionsPresentes.size();i++){ if (collisionsPresentes.get(listeObstaclesInVoisinage.get(i)) == HAUT){ - System.out.println("coucou"); this.vitesseActuZ = 0; this.setCoord(new Coordonnees(this.getCoord().getX(), listeObstaclesInVoisinage.get(i).getHitbox().getExtremites().get("BasGauche").getZ()+entityHEIGHT/2+1)); break; @@ -155,7 +144,7 @@ public class Character extends Entity{ } } - public void keyGestion() { + private void keyGestion() { for (Coffre cof : Jeu.getCoffreTable()){ if (HitBox.collision(this.getHitBox(), cof.getHitbox())){ if (cof.key ==true) { @@ -167,7 +156,7 @@ public class Character extends Entity{ } } - public List<Obstacle> obstacleInVoisinage(){ //recupere la liste des obstacles presents dans le voisinage + private List<Obstacle> obstacleInVoisinage(){ //recupere la liste des obstacles presents dans le voisinage List<Obstacle> liste = new ArrayList<>(); for (Obstacle obs : getObstacleTable()){ if (HitBox.collision(voisinage, obs.getHitbox())){ @@ -178,8 +167,7 @@ public class Character extends Entity{ } - @Override - public void attaque(){ + private void attaque(){ Coordonnees attackCenter = new Coordonnees(coord.getX() + direction*entityWIDTH/2, coord.getZ()); Attack characterAttack = new Attack(attackStat, attackCenter, new HitBox(attackCenter,entityHEIGHT,entityWIDTH+20)); for (Monster monster : Jeu.getMonsterList()){ @@ -191,7 +179,7 @@ public class Character extends Entity{ } - public void getGameCommand(){ + private void getGameCommand(){ Map<String,Boolean> commandeJeu = Jeu.getDirectionJeu(); if (commandeJeu.get("Right") && commandeJeu.get("Left")){tableCommande.replace("CommandX", (double)0);} @@ -209,7 +197,7 @@ public class Character extends Entity{ if (commandeJeu.get("Attack"))tableCommande.replace("CommandAttack", (double)1); } - public void resetCommand(){ + private void resetCommand(){ for (String key : tableCommande.keySet()){ tableCommande.replace(key, (double)0); } @@ -250,7 +238,7 @@ public class Character extends Entity{ return impulsionSaut; } - public void updateVoisinage(){ + private void updateVoisinage(){ voisinage = new HitBox(coord, 1000, 1000); } @@ -262,5 +250,7 @@ public class Character extends Entity{ return tableCommande; } - + public Character clone(){ + return this; + } } diff --git a/MAVENProject/src/main/java/entity/Entity.java b/MAVENProject/src/main/java/entity/Entity.java index dc9f9dc..5c2ccb1 100644 --- a/MAVENProject/src/main/java/entity/Entity.java +++ b/MAVENProject/src/main/java/entity/Entity.java @@ -47,15 +47,15 @@ public abstract class Entity { nbMaxFramesInvicible = 100; } - public void deplacements(){} + private void deplacements(){} - public void attaque(){} + private void attaque(){} - public void updateVoisinage(){} + private void updateVoisinage(){} - public void collisionGestion(){} + private void collisionGestion(){} - public List<Obstacle> obstacleInVoisinage(){return new ArrayList<Obstacle>();} + private List<Obstacle> obstacleInVoisinage(){return new ArrayList<Obstacle>();} public Boolean death(){return false;} diff --git a/MAVENProject/src/main/java/jeu/Jeu.java b/MAVENProject/src/main/java/jeu/Jeu.java index 457349a..775e5a2 100644 --- a/MAVENProject/src/main/java/jeu/Jeu.java +++ b/MAVENProject/src/main/java/jeu/Jeu.java @@ -9,8 +9,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import entity.Bat; -import entity.Boss; import entity.Character; import entity.Kunai; import entity.Monster; @@ -18,7 +16,6 @@ import entity.ShootingCharacter; import engine.Game; import environnement.Coordonnees; import environnement.HitBox; -import loaders.ObstacleLoader; import map.Obstacle; import loaders.CharacterLoader; import map.Coffre; @@ -61,7 +58,8 @@ public class Jeu implements Game{ private boolean characterAttacking = false; //boolean necessaire pour rendre l'animation d'attaque prioritaire - public static Obstacle sol = new Obstacle(new HitBox(new Coordonnees(200,1092),56,1000000)); + //le sol + public static Obstacle sol = new Obstacle(new HitBox(new Coordonnees(200,1064),1,1000000)); public static List<Obstacle> obstacleTable = new ArrayList<>(); private static List<Monster> monsterList = new ArrayList<>(); @@ -90,10 +88,6 @@ public class Jeu implements Game{ n = 0;*/ levelManager = new LevelManager(); - levelManager.generateObstacleTable(); - - - try { helpReader = new BufferedReader(new FileReader(source)); @@ -114,11 +108,8 @@ public class Jeu implements Game{ directionJeu.put("Attack",false); - //faut supp la pour table obstacles - - - - obstacleTable= levelManager.getListeObstacle(); + //on genere la table des obstacles + obstacleTable= levelManager.generateObstacleTable(); obstacleTable.add(sol); @@ -129,7 +120,8 @@ public class Jeu implements Game{ obstacleTable.add(new Obstacle(new HitBox(new Coordonnees(600, 662.5),75,50))); obstacleTable.add(new Obstacle(new HitBox(new Coordonnees(450, 400),32,128)));*/ - coffreTable.add(new Coffre(new HitBox(new Coordonnees(900, 685),30,30))); //table des coffres + //on genere la table des coffres + coffreTable = levelManager.generateCoffreTable(); //on met des monstres, faut supp la pour table monstres /*monsterList.add(new Monster(new Coordonnees(1000, sol.getHitbox().getExtremites().get("HautGauche").getZ()-500), 1000, 30, 60, 1,5)); @@ -143,8 +135,8 @@ public class Jeu implements Game{ gameCharacterLoader = new CharacterLoader(characterSkinPath,new ShootingCharacter(new Coordonnees(xdebut, zdebut), 1500, 1,600000)); gameCharacter = new ShootingCharacter(new Coordonnees(xdebut, zdebut), 1500, 1,600000); - levelManager.generateMonsterTable(); - monsterList= levelManager.getListeMonster(); + //on genere la table des monstres + monsterList= levelManager.generateMonsterTable(); //on remplit la map des frames Map<String,Integer> tempMap = gameCharacterLoader.getPathTable(); @@ -204,7 +196,7 @@ public class Jeu implements Game{ if (!characterAttacking){ //animation d'attaque prioritaire if ( gameCharacter.getAlpha()==0) { movement = "character_jump";} // pour savoir si il jump ou non - else{ + else{//savoir si il avance ou non if (Right && Left)movement = "character_idle"; else if (Right || Left){ movement = "character_run"; @@ -214,17 +206,15 @@ public class Jeu implements Game{ movement = "character_idle"; //ca changera quand j'aurai les nouvelles frames } } - if (gameCharacter.getDirection() == -1)movement += "_L"; + if (gameCharacter.getDirection() == -1)movement += "_L";//mvt gauche ou droit + } //si on a change de mouvement, le jeu doit redemarrer a la premiere frame correspondante - //System.out.println(numberOfMovement); if ( !previousMovement.equals(movement)){numberOfMovement = 1;nbBeforeFramechgt = nbIterationPerFrame;} if (numberOfMovement == gameCharacterLoader.getPathTable().get(movement)){ - //System.out.println(movement); - //characterNotMoving = true; if (movement.equals("character_attack") || movement.equals("character_attack_L")){ characterAttacking = false; } @@ -258,7 +248,7 @@ public class Jeu implements Game{ } public static Character getGameCharacter() { - return gameCharacter; + return gameCharacter.clone(); } public static List<Monster> getMonsterList() { diff --git a/MAVENProject/src/main/java/jeu/Painter.java b/MAVENProject/src/main/java/jeu/Painter.java index 21f0e86..6c3ac58 100644 --- a/MAVENProject/src/main/java/jeu/Painter.java +++ b/MAVENProject/src/main/java/jeu/Painter.java @@ -6,6 +6,7 @@ import entity.Monster; import environnement.Coordonnees; import environnement.HitBox; import loaders.ObstacleLoader; +import map.Coffre; import map.Obstacle; import java.awt.*; import java.awt.image.BufferedImage; @@ -17,7 +18,8 @@ import java.net.URL; import static environnement.HitBox.collision; import static jeu.Jeu.*; -import map.LevelManager; + + public class Painter implements GamePainter{ @@ -25,8 +27,7 @@ public class Painter implements GamePainter{ //protected static final int WIDTH = TILES_SIZE*TILES_IN_WIDTH; //protected static final int HEIGHT = TILES_SIZE*TILES_IN_HEIGHT; protected static final int WIDTH =1500; - protected static final int HEIGHT=1000; - private LevelManager levelManager; + protected static final int HEIGHT=750; public static Obstacle test = new Obstacle(new HitBox(new Coordonnees(300,550),32,128)); private static Coordonnees coordonneesCam; @@ -34,7 +35,6 @@ public class Painter implements GamePainter{ public int zCam; private int decalage = 255; // decalage Cam bas pour perso - private Painter painter; public Painter() { } @@ -47,7 +47,6 @@ public class Painter implements GamePainter{ drawMap(crayon); drawSol(crayon); - //drawObstacleBis(crayon,test,"plateforme.png"); // A changer drawLifePoints(crayon); drawKey(crayon); drawMonsters(crayon); @@ -72,7 +71,7 @@ public class Painter implements GamePainter{ private void drawKey(Graphics2D crayon){ if(gameCharacter.key==0) { - crayon.fillRect(-10,20,-20,30); + crayon.fillRect(40,60,20,30); } } private void drawLifePoints(Graphics2D crayon){ @@ -106,24 +105,24 @@ public class Painter implements GamePainter{ 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){ + private void drawCoffre(Graphics2D crayon, Coffre coffre){ HashMap<String, Coordonnees> extremites = coffre.getHitbox().getExtremites(); Coordonnees hd = extremites.get("HautDroite"); Coordonnees bd = extremites.get("BasDroite"); Coordonnees hg = extremites.get("HautGauche"); Coordonnees bg = extremites.get("BasGauche"); - 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 drawSol(Graphics2D crayon){ ObstacleLoader loader = new ObstacleLoader(Jeu.getSol(),"Terre.png"); HitBox hitBox = loader.getObstacle().getHitbox(); int z = (int) hitBox.getCentre().getZ(); - for (int x = 0;x<3000;x+=128) { + for (int x = 0;x<Jeu.getSol().getHitbox().getWidth();x+=128) { crayon.drawImage(loader.getImageObstacle(),x -xCam ,z - zCam,null,null); } } @@ -139,7 +138,7 @@ public class Painter implements GamePainter{ } drawObstacle(crayon,obs); } - /*for (Coffre obs : Jeu.getCoffreTable()){ + for (Coffre obs : Jeu.getCoffreTable()){ if (!collision(gameCharacter.getHitBox(), obs.getHitbox())){ crayon.setColor(Color.blue); } @@ -147,16 +146,9 @@ public class Painter implements GamePainter{ crayon.setColor(Color.red); } drawCoffre(crayon,obs); - }*/ + } } - private void drawObstacleBis(Graphics2D crayon, Obstacle obstacle, String nom){ - ObstacleLoader loader = new ObstacleLoader(obstacle,nom); - 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 -xCam,z - (int) hitBox.getHeight()/2 -zCam,null,null); - } /*private void drawCoffreBis(Graphics2D crayon, Coffre coffre, String nom){ CoffreLoader loader = new CoffreLoader(coffre,nom); diff --git a/MAVENProject/src/main/java/loaders/CharacterLoader.java b/MAVENProject/src/main/java/loaders/CharacterLoader.java index b71057a..d325200 100644 --- a/MAVENProject/src/main/java/loaders/CharacterLoader.java +++ b/MAVENProject/src/main/java/loaders/CharacterLoader.java @@ -10,7 +10,6 @@ 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; private Map<String,Integer> pathTable; // objet utilise a revoir diff --git a/MAVENProject/src/main/java/map/LevelManager.java b/MAVENProject/src/main/java/map/LevelManager.java index b00bb00..4c6d98b 100644 --- a/MAVENProject/src/main/java/map/LevelManager.java +++ b/MAVENProject/src/main/java/map/LevelManager.java @@ -1,6 +1,6 @@ package map; -import java.awt.Graphics; + import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.List; @@ -11,16 +11,13 @@ import environnement.Coordonnees; import environnement.HitBox; import jeu.Jeu; import loaders.LoadSave; -import jeu.Painter; + public class LevelManager { - private Jeu jeu; - private Painter painter; + private BufferedImage[] levelSprite; private Level levelOne; - private List<Obstacle> listeObstacle= new ArrayList<>(); - private List<Monster> listeMonster= new ArrayList<>(); public LevelManager() { importOutsideSprites(); @@ -46,69 +43,77 @@ public class LevelManager { }*/ } - public void generateObstacleTable() { - for (int j = 0; j < Jeu.TILES_IN_HEIGHT; j++) + public List<Obstacle> generateObstacleTable() { + List<Obstacle> obstacleList = new ArrayList<>(); + for (int j = 0; j < Jeu.TILES_IN_HEIGHT; j++){ for (int i = 0; i < Jeu.TILES_IN_WIDTH; i++) { int index = levelOne.getSpriteIndex(i, j); - //g.drawImage(levelSprite[index], Jeu.TILES_SIZE * i, Jeu.TILES_SIZE * j, Jeu.TILES_SIZE, Jeu.TILES_SIZE, null); //Index selon la couleur associée au bloc if (index==0) { - listeObstacle.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i+Jeu.TILES_SIZE/2, Jeu.TILES_SIZE * j-6*Jeu.TILES_SIZE/2), 6*Jeu.TILES_SIZE, 1*Jeu.TILES_SIZE))); + obstacleList.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i+Jeu.TILES_SIZE/2, Jeu.TILES_SIZE * j-6*Jeu.TILES_SIZE/2), 6*Jeu.TILES_SIZE, 1*Jeu.TILES_SIZE))); } if (index==1) { - listeObstacle.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i+Jeu.TILES_SIZE/2, Jeu.TILES_SIZE * j-3*Jeu.TILES_SIZE/2), 3*Jeu.TILES_SIZE, 1*Jeu.TILES_SIZE))); + obstacleList.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i+Jeu.TILES_SIZE/2, Jeu.TILES_SIZE * j-3*Jeu.TILES_SIZE/2), 3*Jeu.TILES_SIZE, 1*Jeu.TILES_SIZE))); } if (index==2) { - listeObstacle.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i+Jeu.TILES_SIZE/2, Jeu.TILES_SIZE * j-2*Jeu.TILES_SIZE/2), 2*Jeu.TILES_SIZE, 1*Jeu.TILES_SIZE))); + obstacleList.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i+Jeu.TILES_SIZE/2, Jeu.TILES_SIZE * j-2*Jeu.TILES_SIZE/2), 2*Jeu.TILES_SIZE, 1*Jeu.TILES_SIZE))); } if (index==3) { - listeObstacle.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i+2*Jeu.TILES_SIZE/2, Jeu.TILES_SIZE * j-Jeu.TILES_SIZE/2), 1*Jeu.TILES_SIZE, 2*Jeu.TILES_SIZE))); + obstacleList.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i+2*Jeu.TILES_SIZE/2, Jeu.TILES_SIZE * j-Jeu.TILES_SIZE/2), 1*Jeu.TILES_SIZE, 2*Jeu.TILES_SIZE))); } if (index==5) { - listeObstacle.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i+3*Jeu.TILES_SIZE/2, Jeu.TILES_SIZE * j-Jeu.TILES_SIZE/2), 1*Jeu.TILES_SIZE, 3*Jeu.TILES_SIZE))); - - } - //Coffres - if (index==11) { - listeObstacle.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i+Jeu.TILES_SIZE/2, Jeu.TILES_SIZE * j-Jeu.TILES_SIZE/2), Jeu.TILES_SIZE, Jeu.TILES_SIZE))); - - } - if (index==25) { - listeObstacle.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i+7*Jeu.TILES_SIZE/2, Jeu.TILES_SIZE * j-Jeu.TILES_SIZE/2), 1*Jeu.TILES_SIZE, 7*Jeu.TILES_SIZE))); + obstacleList.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i+3*Jeu.TILES_SIZE/2, Jeu.TILES_SIZE * j-Jeu.TILES_SIZE/2), 1*Jeu.TILES_SIZE, 3*Jeu.TILES_SIZE))); } } + }return obstacleList; } - public void generateMonsterTable() { - for (int j = 0; j < Jeu.TILES_IN_HEIGHT; j++) + public List<Monster> generateMonsterTable() { + List<Monster> monsterList = new ArrayList<>(); + for (int j = 0; j < Jeu.TILES_IN_HEIGHT; j++){ for (int i = 0; i < Jeu.TILES_IN_WIDTH; i++) { int index = levelOne.getSpriteIndex(i, j); if (index == 13) { - listeMonster.add(new Monster(new Coordonnees(32 * i + 30 / 2, 32 * j - 62 / 2), 1000, 30, 60, 1, 5)); + monsterList.add(new Monster(new Coordonnees(32 * i + 30 / 2, 32 * j - 62 / 2), 1000, 30, 60, 1, 5)); } //chauve-souris if (index == 14) { - listeMonster.add(new Bat(new Coordonnees(32 * i + 20 / 2, 32 * j - 30 / 2), 1, 3)); + monsterList.add(new Bat(new Coordonnees(32 * i + 20 / 2, 32 * j - 30 / 2), 1, 3)); } } - } - public List<Obstacle> getListeObstacle() { - return listeObstacle; + }return monsterList; } - public List<Monster> getListeMonster() { - return listeMonster; + public List<Coffre> generateCoffreTable(){ + List<Coffre> coffreListe = new ArrayList<>(); + + for (int j = 0; j < Jeu.TILES_IN_HEIGHT; j++){ + for (int i = 0; i < Jeu.TILES_IN_WIDTH; i++) { + int index = levelOne.getSpriteIndex(i, j); + //Coffres + if (index==11) { + coffreListe.add(new Coffre(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i+Jeu.TILES_SIZE/2, Jeu.TILES_SIZE * j-Jeu.TILES_SIZE/2), Jeu.TILES_SIZE, Jeu.TILES_SIZE))); + + } + if (index==25) { + coffreListe.add(new Coffre(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i+7*Jeu.TILES_SIZE/2, Jeu.TILES_SIZE * j-Jeu.TILES_SIZE/2), 1*Jeu.TILES_SIZE, 7*Jeu.TILES_SIZE))); + + } + } + } + return coffreListe; } + public void update() { } diff --git a/MAVENProject/src/main/java/start/Main.java b/MAVENProject/src/main/java/start/Main.java index e89553a..b7e97a9 100644 --- a/MAVENProject/src/main/java/start/Main.java +++ b/MAVENProject/src/main/java/start/Main.java @@ -1,7 +1,6 @@ package start; import jeu.Painter; -import map.LevelManager; import spotify.MP3; import engine.GameEngineGraphical; -- GitLab