diff --git a/MAVENProject/src/main/java/entity/Character.java b/MAVENProject/src/main/java/entity/Character.java index 3300ffc1c466f918d94ae6990b0a50949d86672a..056aaec27416f08784d9791ee3a2d04e07330719 100644 --- a/MAVENProject/src/main/java/entity/Character.java +++ b/MAVENProject/src/main/java/entity/Character.java @@ -14,8 +14,10 @@ import environnement.PositionCollision; import jeu.Jeu; import map.Obstacle; import map.Coffre; +import map.LevelManager; +import static jeu.Jeu.getLevelmanager; import static jeu.Jeu.getObstacleTable; //import static jeu.Jeu.gameCharacter; @@ -27,9 +29,9 @@ public class Character extends Entity{ private final double impulsionSaut; private double masse; public int key; - protected Map<String,Double> tableCommande; //table des commandes du perso - + private boolean breakPorte=false; + private boolean brokenPorte=false; //private Obstacle obstacleBeneath = Jeu.sol; //private BufferedImage sprite; @@ -143,17 +145,26 @@ public class Character extends Entity{ } } } - + + + void keyGestion() { for (Coffre cof : Jeu.getCoffreTable()){ if (HitBox.collision(this.getHitBox(), cof.getHitbox())){ if (cof.key) { this.key += 1; cof.key = false; + System.out.print("Tu as trouvé une clée!"); } } } + if (key==3 && brokenPorte==false){ + if (HitBox.collision(this.getHitBox(),Jeu.getObstacleTable().get(getLevelmanager().getIndexPorte()).getHitbox())) { + breakPorte = true; + brokenPorte = true; + } + } } List<Obstacle> obstacleInVoisinage(){ //recupere la liste des obstacles presents dans le voisinage @@ -204,6 +215,7 @@ public class Character extends Entity{ } public void evolveCharacter(){ + breakPorte=false; getGameCommand(); deplacements(); collisionGestion(); @@ -228,6 +240,9 @@ public class Character extends Entity{ public double getVitesseActuZ() { return vitesseActuZ; } + public boolean isBreakPorte() { + return breakPorte; + } public double getM() { return masse; diff --git a/MAVENProject/src/main/java/jeu/Jeu.java b/MAVENProject/src/main/java/jeu/Jeu.java index 2ff2e457c34eea79905869fbe6e2361726fb41da..061bded71044e485ed0b14dba401d932c56cbbd0 100644 --- a/MAVENProject/src/main/java/jeu/Jeu.java +++ b/MAVENProject/src/main/java/jeu/Jeu.java @@ -65,11 +65,11 @@ public class Jeu implements Game{ //Sol du niveau 1 : - public static Obstacle sol = new Obstacle(new HitBox(new Coordonnees(200,1216),1,1000000)); + //public static Obstacle sol = new Obstacle(new HitBox(new Coordonnees(200,1216),1,1000000)); //Sol du niveau 2 : - //public static Obstacle sol = new Obstacle(new HitBox(new Coordonnees(200,1664),1,1000000)); + public static Obstacle sol = new Obstacle(new HitBox(new Coordonnees(200,1664),1,1000000)); public static List<Obstacle> obstacleTable = new ArrayList<>(); private static List<Monster> monsterList = new ArrayList<>(); @@ -80,11 +80,11 @@ public class Jeu implements Game{ public final static float SCALE=1.0f; //Taille fenêtre niveau 1 : - public final static int TILES_IN_WIDTH = 132; - public final static int TILES_IN_HEIGHT = 46; + //public final static int TILES_IN_WIDTH = 132; + //public final static int TILES_IN_HEIGHT = 46; //Taille fenêtre niveau 2 : - //public final static int TILES_IN_WIDTH = 152; - //public final static int TILES_IN_HEIGHT = 60; + public final static int TILES_IN_WIDTH = 152; + public final static int TILES_IN_HEIGHT = 60; public final static int TILES_SIZE = (int) (TILES_DEFAULT_SIZE*SCALE); private static final LevelManager levelManager = new LevelManager(); @@ -194,10 +194,23 @@ public class Jeu implements Game{ - //perso evolue dans le jeu (en actualisant ses coordonnees) - gameCharacter.evolveCharacter(); + //monstres evoluent dans le jeu Monster.evolveAllMonsters(monsterList); + //perso evolue dans le jeu (en actualisant ses coordonnees) + gameCharacter.evolveCharacter(); + + if (gameCharacter.isBreakPorte()){ + obstacleTable = new ArrayList<>(); + obstacleTable.add(sol); + for (Monster monster : monsterList){ + monster.setCoord(new Coordonnees(monster.getCoord().getX(), monster.getCoord().getZ()-10)); + } + + } + Coffre.EvolveAllCoffres(coffreTable); + + //kunais evoluent dans le jeu Kunai.evolveAllKunais(kunaiList); //coeurs healent diff --git a/MAVENProject/src/main/java/jeu/Painter.java b/MAVENProject/src/main/java/jeu/Painter.java index f08823bf000bae75ce75f482f494e55c9145292b..aa56796ca37f6dab684000143e6ad3e34f05c2cc 100644 --- a/MAVENProject/src/main/java/jeu/Painter.java +++ b/MAVENProject/src/main/java/jeu/Painter.java @@ -50,7 +50,7 @@ public class Painter implements GamePainter{ assert url != null; int placeX = -10; String beginPath = url.toString().substring(6)+"/"; - crayon.drawImage(new ImageIcon(beginPath+"background_rdm.png").getImage(), 0-xCam, 0-zCam, null, null); + crayon.drawImage(new ImageIcon(beginPath+"background.png").getImage(), 0-xCam, 0-zCam, null, null); drawMap(crayon); drawSol(crayon); diff --git a/MAVENProject/src/main/java/map/Coffre.java b/MAVENProject/src/main/java/map/Coffre.java index 2c0b5d289b48655d26a91bb36eef8e217cf941a2..278a528465d7b71acc3df96af5371a694f6debca 100644 --- a/MAVENProject/src/main/java/map/Coffre.java +++ b/MAVENProject/src/main/java/map/Coffre.java @@ -1,6 +1,7 @@ package map; import java.awt.image.BufferedImage; +import java.util.List; import environnement.HitBox; import jeu.Jeu; @@ -18,6 +19,17 @@ public class Coffre { image = Jeu.getLevelmanager().getImageCoffre(); + } + public static void EvolveAllCoffres(List<Coffre> coffreList){ + int k=0; + while (k<coffreList.size()){ + if (coffreList.get(k).key){ + k++; + } + else{ + coffreList.remove(coffreList.get(k)); + } + } } public HitBox getHitbox() { return hitbox; diff --git a/MAVENProject/src/main/java/map/LevelManager.java b/MAVENProject/src/main/java/map/LevelManager.java index e3261d007d022a8f74dc6aa0a958a298b213404f..c0b06a15a1608619095ae055a88d02bb0f772efd 100644 --- a/MAVENProject/src/main/java/map/LevelManager.java +++ b/MAVENProject/src/main/java/map/LevelManager.java @@ -21,11 +21,12 @@ public class LevelManager { private Level levelOne; private Level levelTwo; private List<BufferedImage> obstacleImage = new ArrayList<>(); - private static int indexBoss; + private int indexBoss; + private int indexPorte; public LevelManager() { importOutsideSprites(); - levelOne = new Level(LoadSave.GetLevelData(LoadSave.LEVEL_ONE)); + levelOne = new Level(LoadSave.GetLevelData(LoadSave.LEVEL_TWO)); //levelTwo = new Level(LoadSave.GetLevelData(LoadSave.LEVEL_TWO)); } @@ -82,6 +83,7 @@ public class LevelManager { public List<Obstacle> generateObstacleTable() { List<Obstacle> obstacleList = new ArrayList<>(); BufferedImage[] tabImages = importOutsideSprites(); + Obstacle obstaclePorte = new Obstacle(new HitBox(new Coordonnees(1,1),1,1)); 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); @@ -113,9 +115,9 @@ public class LevelManager { obstacleImage.add(tabImages[4]); } //Porte du boss - if (index==44) { - //obstacleList.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i+1*Jeu.TILES_SIZE/2, Jeu.TILES_SIZE * j-3*Jeu.TILES_SIZE/2), 3*Jeu.TILES_SIZE, 1*Jeu.TILES_SIZE-1))); + obstaclePorte = new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i+1*Jeu.TILES_SIZE/2, Jeu.TILES_SIZE * j-3*Jeu.TILES_SIZE/2), 3*Jeu.TILES_SIZE, 1*Jeu.TILES_SIZE-1)); + obstacleList.add(obstaclePorte); obstacleImage.add(tabImages[7]); } //Terre verticale de 6 de hauteur @@ -137,7 +139,6 @@ public class LevelManager { if (index==29) { obstacleList.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i+Jeu.TILES_SIZE/2, Jeu.TILES_SIZE * j-20*Jeu.TILES_SIZE/2), 20*Jeu.TILES_SIZE, 1*Jeu.TILES_SIZE))); obstacleImage.add(tabImages[10]); - System.out.println(i); } //Specifique au niveau 2 : @@ -169,34 +170,32 @@ public class LevelManager { } } - }return obstacleList; + + }indexPorte=obstacleList.indexOf(obstaclePorte); + return obstacleList; } public List<Monster> generateMonsterTable() { List<Monster> monsterList = new ArrayList<>(); - Boss boss = new Boss(new Coordonnees(1, 1), 1, 1, 1, 1, 1); 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); //Monstres à pied if (index == 45) { - monsterList.add(new Monster(new Coordonnees(32 * i + 30 / 2, 32 * j - 62 / 2), 1000, 30, 60, 1, 3)); - System.out.println("ça a bien créé un monstre"); + monsterList.add(new Monster(new Coordonnees(32 * i + 30 / 2, 32 * j - 62 / 2), 1000, 30, 60, 1, 5)); } //chauve-souris if (index == 46) { - monsterList.add(new Bat(new Coordonnees(32 * i + 20 / 2, 32 * j - 30 / 2), 1, 1)); - System.out.println("oui"); + monsterList.add(new Bat(new Coordonnees(32 * i + 20 / 2, 32 * j - 30 / 2), 1, 3)); } //Boss if (index == 47) { - boss = new Boss(new Coordonnees(32*i, 32*j-140/2), 500, 32, 96, 3, 30); - monsterList.add(boss); - + monsterList.add(new Boss(new Coordonnees(32*i, 32*j-140/2), 500, 32, 96, 3, 50)); + indexBoss = monsterList.size()-1; } } } - indexBoss = monsterList.indexOf(boss); + System.out.println(monsterList); return monsterList; } @@ -233,8 +232,11 @@ public class LevelManager { return importOutsideSprites()[5]; } - public static int getIndexBoss() { + public int getIndexBoss() { return indexBoss; - } - + } + + public int getIndexPorte() { + return indexPorte; + } } diff --git a/MAVENProject/src/main/resources/Obstacles/background.jpg b/MAVENProject/src/main/resources/Obstacles/background.jpg deleted file mode 100644 index df6f5acfc3fddbaef639584e3bc8064ae38d60ac..0000000000000000000000000000000000000000 Binary files a/MAVENProject/src/main/resources/Obstacles/background.jpg and /dev/null differ diff --git a/MAVENProject/src/main/resources/Obstacles/background.png b/MAVENProject/src/main/resources/Obstacles/background.png index 719d3d6523c0ddb7cb57e60b3b3dce40cc41a7cc..9b29c4f917d4fb9da6cd2c41f9e60b4e96a246b2 100644 Binary files a/MAVENProject/src/main/resources/Obstacles/background.png and b/MAVENProject/src/main/resources/Obstacles/background.png differ diff --git a/MAVENProject/src/main/resources/Obstacles/background_rdm.png b/MAVENProject/src/main/resources/Obstacles/background_rdm.png deleted file mode 100644 index 6acac0bef75b2759600376b9d26297923dba7d25..0000000000000000000000000000000000000000 Binary files a/MAVENProject/src/main/resources/Obstacles/background_rdm.png and /dev/null differ