From 6e74bfce12b252070e8e118821cc4e489eda8ec2 Mon Sep 17 00:00:00 2001 From: Brugneaux Louis <louis.brugneaux3@etu.univ-lorraine.fr> Date: Wed, 14 Dec 2022 21:03:53 +0100 Subject: [PATCH] =?UTF-8?q?Commentaires=20ajout=C3=A9s+=20coffres=20r?= =?UTF-8?q?=C3=A9solus+=20sprite=20de=20la=20cl=C3=A9=20ajout=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/loaders/LoadSave.java | 14 +++++++++-- .../src/main/java/map/LevelManager.java | 22 ++++++++++++++---- .../src/main/resources/Obstacles/Key.png | Bin 0 -> 564 bytes 3 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 MAVENProject/src/main/resources/Obstacles/Key.png diff --git a/MAVENProject/src/main/java/loaders/LoadSave.java b/MAVENProject/src/main/java/loaders/LoadSave.java index ef79cd1..c743dc3 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 4c6d98b..2c7bcf7 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 GIT binary patch literal 564 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>V0`E4 z;usR){x;-vUb6#_Ouby@g5yi#Zxr!d_)xj-7=MJ5kY?7ZF9+lVqN?A1tjIao-M`1e z-i$$-83g}NW)utzedqD}$xhBN7O(KFdzUqEEZFsF`|YQ%mOg)#asQX>TxFG6&9QgC zZa1IictPfII^X)c;ew8h&vx*wh~<8>`p|=`3+$QCwl9ooSn%}<)7Nv8FW;@X-k@6+ z%lIVCf_v6sqZx`R3d<4%eh0elE$(Ayvs)Ksw4XcJzU_W$4fClP4)&`Ww`AQo9IR%p z{GqO3i4DuNHD4B+A8l|snx_6CV*{hb61h)t2d=%-E-#X2R=Bk_>&lXYlk{&dww=6( z^(;f1;S}-E=f68`7fp9qBD70o_C)n4ukNz>UB7r=>{stv-=(Wvdh3*8;-&zFmmx*| z4Jqc1ESIiadEvA*Jyv^#cIm7Bu%}WD2O?LTIun?BZrb+ptk$zPk|dJWwJe(Fy5jEi zg#Dk_+?-wXL~W`2?6!|d&N?NPhA+i3*m9GlMD{%wNon%TSXNel<oNO{9UN_&7cI+; z((H~C3E0EBeF59DB*9j(6=`ZuXZ#SnVjW%lfJLA*V&0}>`b|3ONpVRrG7fL8A82+O zf18@X=akelsoi?@jw3%m{9l`;rYb61m-Vz<qGCr!yzP(4tK=NFFy4@;uw=HMG5v*1 UN3+)=1_lNOPgg&ebxsLQ03{9m!vFvP literal 0 HcmV?d00001 -- GitLab