diff --git a/MAVENProject/src/main/java/loaders/LoadSave.java b/MAVENProject/src/main/java/loaders/LoadSave.java index ef79cd13f4145fc3f6446e18b0a1922f12381164..c743dc326a604aed7f9ae0c605c271995cf83fb0 100644 --- a/MAVENProject/src/main/java/loaders/LoadSave.java +++ b/MAVENProject/src/main/java/loaders/LoadSave.java @@ -12,8 +12,9 @@ import jeu.Jeu; public class LoadSave { - + //Association des differents sprites des blocs public static final String LEVEL_SPRITES = "Obstacles/Map_sprites.png"; + //Map composee de pixels public static final String LEVEL_ONE = "Obstacles/level_one_monster.png"; public static BufferedImage GetSpriteAtlas(String fileName) { @@ -33,7 +34,7 @@ public class LoadSave { } return img; } - + //Prend en compte la valeur de la composante rouge des pixels ce qui permet de differencier les blocs public static int[][] GetLevelData() { int[][] lvlData = new int[Jeu.TILES_IN_HEIGHT][Jeu.TILES_IN_WIDTH]; BufferedImage img = GetSpriteAtlas(LEVEL_ONE); @@ -42,20 +43,28 @@ public class LoadSave { for (int i = 0; i < img.getWidth(); i++) { Color color = new Color(img.getRGB(i, j)); int value = color.getRed(); + //longs blocs de 6 de hauteur if (0<=value && value <= 10) value = 0; + //Blocs de 3 pixels de hauteur if (11<=value && value <= 30) value = 1; + //Blocs de 2 de hauteur if (31<=value && value <= 50) value = 2; + //bloc de 2 de longueur if (51<=value && value <= 70) value = 3; + //Bloc de 3 de longeur if (71<=value && value <= 90) value = 5; + //Long bloc de 7 de longueur if (91<=value && value <= 110) value = 25; + //Espaces vides if (111<=value && value <= 130) value = 12; + //Coffres if (131<=value && value <= 150) value = 11; //MOnstres à pied @@ -64,6 +73,7 @@ public class LoadSave { //Bat if (171<=value && value <= 190) value = 14; + //Liste des valeurs lvlData[j][i] = value; } return lvlData; diff --git a/MAVENProject/src/main/java/map/LevelManager.java b/MAVENProject/src/main/java/map/LevelManager.java index 4c6d98b7bd899447d7d2e497c5662e792fc497c7..2c7bcf700696b43fc531a73a299393585698e20c 100644 --- a/MAVENProject/src/main/java/map/LevelManager.java +++ b/MAVENProject/src/main/java/map/LevelManager.java @@ -29,12 +29,19 @@ public class LevelManager { levelSprite = new BufferedImage[7]; //Pour les sprites de chaque bloc + //longs blocs de 6 de hauteur levelSprite[0] = img.getSubimage(0, 0, 32, 192); + //Blocs de 3 pixels de hauteur levelSprite[1] = img.getSubimage( 32, 0, 32, 96); + //Blocs de 2 de hauteur levelSprite[2] = img.getSubimage(2 * 32, 0, 32, 64); + //bloc de 2 de longueur levelSprite[3] = img.getSubimage(3 * 32, 0, 64, 32); + //Bloc de 3 de longeur levelSprite[4] = img.getSubimage(5 * 32, 0, 96, 32); + //Coffres levelSprite[5] = img.getSubimage(3 * 32, 32, 32, 32); + //Long bloc de 7 de longueur levelSprite[6] = img.getSubimage(32, 3 * 32, 224, 32); /*for (int j = 0; j < 2; j++) for (int i = 0; i < 9; i++) { @@ -50,26 +57,36 @@ public class LevelManager { int index = levelOne.getSpriteIndex(i, j); //Index selon la couleur associée au bloc + //longs blocs de 6 de hauteur if (index==0) { 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))); } + //Blocs de 3 pixels de hauteur if (index==1) { 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))); } + //Blocs de 2 de hauteur if (index==2) { 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))); } + //bloc de 2 de longueur if (index==3) { 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))); } + //Bloc de 3 de longeur if (index==5) { 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))); } + //Long bloc de 7 de longueur + if (index==25) { + obstacleList.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))); + + } } }return obstacleList; @@ -80,6 +97,7 @@ public class LevelManager { for (int i = 0; i < Jeu.TILES_IN_WIDTH; i++) { int index = levelOne.getSpriteIndex(i, j); + //Monstres à pied if (index == 13) { monsterList.add(new Monster(new Coordonnees(32 * i + 30 / 2, 32 * j - 62 / 2), 1000, 30, 60, 1, 5)); @@ -102,12 +120,8 @@ public class LevelManager { //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; diff --git a/MAVENProject/src/main/resources/Obstacles/Key.png b/MAVENProject/src/main/resources/Obstacles/Key.png new file mode 100644 index 0000000000000000000000000000000000000000..22f93eb12fdd553271eaf0b54308cbc3a27a4611 Binary files /dev/null and b/MAVENProject/src/main/resources/Obstacles/Key.png differ