From 0fff33bfc2e7a3193d82d0ef950b4fdc493c5a00 Mon Sep 17 00:00:00 2001
From: Brugneaux Louis <louis.brugneaux3@etu.univ-lorraine.fr>
Date: Tue, 13 Dec 2022 21:19:31 +0100
Subject: [PATCH] =?UTF-8?q?Nouvelle=20map=20avec=20obstacles=20bien=20cr?=
 =?UTF-8?q?=C3=A9=C3=A9s=20mais=20bug=20avec=20les=20monstres?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../src/main/java/entity/Monster.java         |   7 +--
 MAVENProject/src/main/java/jeu/Jeu.java       |  13 +++---
 .../src/main/java/loaders/LoadSave.java       |   8 +++-
 .../src/main/java/map/LevelManager.java       |  42 +++++++++++++-----
 MAVENProject/src/main/java/start/Main.java    |   3 +-
 .../main/resources/Obstacles/level_one2.png   | Bin 1092 -> 0 bytes
 .../resources/Obstacles/level_one_monster.png | Bin 0 -> 916 bytes
 7 files changed, 53 insertions(+), 20 deletions(-)
 delete mode 100644 MAVENProject/src/main/resources/Obstacles/level_one2.png
 create mode 100644 MAVENProject/src/main/resources/Obstacles/level_one_monster.png

diff --git a/MAVENProject/src/main/java/entity/Monster.java b/MAVENProject/src/main/java/entity/Monster.java
index f1916d4..57c8bbd 100644
--- a/MAVENProject/src/main/java/entity/Monster.java
+++ b/MAVENProject/src/main/java/entity/Monster.java
@@ -9,6 +9,7 @@ import jeu.Jeu;
 import map.Obstacle;
 
 import static jeu.Jeu.getGameCharacter;
+import static jeu.Jeu.getObstacleTable;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -51,7 +52,7 @@ public class Monster extends Entity{
 
     public void collisionGestion(){
         //recupere la liste des obstacles dans le voisinage
-        List<Obstacle> listeObstaclesInVoisinage = obstacleInVoisinage();
+        List<Obstacle> listeObstaclesInVoisinage = getObstacleTable();
         //stocke l'obstacle avec lequel il y a eu collision
         HashMap<Obstacle,PositionCollision> collisionsPresentes = new HashMap<Obstacle,PositionCollision>();
         
@@ -62,7 +63,7 @@ public class Monster extends Entity{
 
         //on set alpha a 0 (on le suppose dans les airs)
         alpha = 0;
-
+        obstacleBeneath = Jeu.getSol();
         //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)
@@ -126,7 +127,7 @@ public class Monster extends Entity{
         deplacements();
         collisionGestion(); // ca merde
         attaque();
-        updateVoisinage();
+        //updateVoisinage();
         this.setHitBox(new HitBox(this.getCoord(),entityHEIGHT,entityWIDTH));
         updateNbFrameInvincible();
         
diff --git a/MAVENProject/src/main/java/jeu/Jeu.java b/MAVENProject/src/main/java/jeu/Jeu.java
index fec86ac..b34ee78 100644
--- a/MAVENProject/src/main/java/jeu/Jeu.java
+++ b/MAVENProject/src/main/java/jeu/Jeu.java
@@ -61,7 +61,7 @@ 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,850),56,1000000));
+    public static Obstacle sol = new Obstacle(new HitBox(new Coordonnees(200,1092),56,1000000));
 
     public static List<Obstacle> obstacleTable = new ArrayList<>();
     private static List<Monster> monsterList = new ArrayList<>();
@@ -69,7 +69,7 @@ public class Jeu implements Game{
     private static List<Coffre> coffreTable = new ArrayList<>();
 
     public final static int TILES_DEFAULT_SIZE=32;
-    public final static float SCALE=1.25f;
+    public final static float SCALE=1.75f;
     public final static int TILES_IN_WIDTH = 60;
     public final static int TILES_IN_HEIGHT = 20;
     public final static int TILES_SIZE = (int) (TILES_DEFAULT_SIZE*SCALE);
@@ -89,7 +89,8 @@ public class Jeu implements Game{
         /*A = new ArrayList<Double>();
         n = 0;*/
 
-        LevelManager levelManager = new LevelManager();
+        levelManager = new LevelManager();
+        levelManager.generateObstacleTable();
 
 
 
@@ -114,10 +115,12 @@ public class Jeu implements Game{
         
         //faut supp la pour table obstacles
 
-        obstacleTable= levelManager.generateObstacleTable();
-        obstacleTable.add(sol);
 
 
+        obstacleTable= levelManager.getListeObstacle();
+        obstacleTable.add(sol);
+        monsterList= levelManager.getListeMonster();
+
 
         /*obstacleTable.add(new Obstacle(new HitBox(new Coordonnees(300,550),32,128)));
         obstacleTable.add(new Obstacle(new HitBox(new Coordonnees(800, 625),150,50)));
diff --git a/MAVENProject/src/main/java/loaders/LoadSave.java b/MAVENProject/src/main/java/loaders/LoadSave.java
index ad63e2a..ef79cd1 100644
--- a/MAVENProject/src/main/java/loaders/LoadSave.java
+++ b/MAVENProject/src/main/java/loaders/LoadSave.java
@@ -14,7 +14,7 @@ public class LoadSave {
 
 
 	public static final String LEVEL_SPRITES = "Obstacles/Map_sprites.png";
-	public static final String LEVEL_ONE = "Obstacles/level_one.png";
+	public static final String LEVEL_ONE = "Obstacles/level_one_monster.png";
 
 	public static BufferedImage GetSpriteAtlas(String fileName) {
 		BufferedImage img = null;
@@ -58,6 +58,12 @@ public class LoadSave {
 					value = 12;
 				if (131<=value && value <= 150)
 					value = 11;
+				//MOnstres à pied
+				if (151<=value && value <= 170)
+					value = 13;
+				//Bat
+				if (171<=value && value <= 190)
+					value = 14;
 				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 241c8d8..46c084e 100644
--- a/MAVENProject/src/main/java/map/LevelManager.java
+++ b/MAVENProject/src/main/java/map/LevelManager.java
@@ -5,6 +5,8 @@ import java.awt.image.BufferedImage;
 import java.util.ArrayList;
 import java.util.List;
 
+import entity.Bat;
+import entity.Monster;
 import environnement.Coordonnees;
 import environnement.HitBox;
 import jeu.Jeu;
@@ -17,6 +19,8 @@ public class LevelManager {
 	private Painter painter;
 	private BufferedImage[] levelSprite;
 	private Level levelOne;
+	private List<Obstacle> listeObstacle= new ArrayList<>();
+	private List<Monster> listeMonster= new ArrayList<>();
 
 	public LevelManager() {
 		importOutsideSprites();
@@ -42,8 +46,8 @@ public class LevelManager {
 			}*/
 	}
 
-	public List<Obstacle> generateObstacleTable() {
-		List<Obstacle> liste = new ArrayList<>();
+	public void generateObstacleTable() {
+
 		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);
@@ -51,35 +55,53 @@ public class LevelManager {
 
 				//Index selon la couleur associée au bloc
 				if (index==0) {
-					liste.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i, Jeu.TILES_SIZE * j), 6*Jeu.TILES_SIZE, 1*Jeu.TILES_SIZE)));
+					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)));
 
 				}
 				if (index==1) {
-					liste.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i, Jeu.TILES_SIZE * j), 3*Jeu.TILES_SIZE, 1*Jeu.TILES_SIZE)));
+					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)));
 
 				}
 				if (index==2) {
-					liste.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i, Jeu.TILES_SIZE * j), 2*Jeu.TILES_SIZE, 1*Jeu.TILES_SIZE)));
+					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)));
 
 				}
 				if (index==3) {
-					liste.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i, Jeu.TILES_SIZE * j), 1*Jeu.TILES_SIZE, 2*Jeu.TILES_SIZE)));
+					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)));
 
 				}
 				if (index==5) {
-					liste.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i, Jeu.TILES_SIZE * j), 1*Jeu.TILES_SIZE, 3*Jeu.TILES_SIZE)));
+					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) {
-					liste.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i, Jeu.TILES_SIZE * j), Jeu.TILES_SIZE, Jeu.TILES_SIZE)));
+					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) {
-					liste.add(new Obstacle(new HitBox(new Coordonnees(Jeu.TILES_SIZE * i, Jeu.TILES_SIZE * j), 1*Jeu.TILES_SIZE, 7*Jeu.TILES_SIZE)));
+					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)));
+
+				}
+				//Monstres à pied
+				/*if (index==13) {
+					listeMonster.add(new Monster(new Coordonnees(Jeu.TILES_SIZE * i+30/2, Jeu.TILES_SIZE * j-62/2), 1000, 30, 60, 1,5));
 
 				}
+				//chauve-souris
+				if (index==14) {
+					listeMonster.add(new Bat(new Coordonnees(Jeu.TILES_SIZE * i+20/2, Jeu.TILES_SIZE * j-32/2), 1, 3));
+
+				}*/
 			}
-		return liste;
+	}
+
+	public List<Obstacle> getListeObstacle() {
+		return listeObstacle;
+	}
+
+	public List<Monster> getListeMonster() {
+		return listeMonster;
 	}
 
 	public void update() {
diff --git a/MAVENProject/src/main/java/start/Main.java b/MAVENProject/src/main/java/start/Main.java
index de5a3c5..e89553a 100644
--- a/MAVENProject/src/main/java/start/Main.java
+++ b/MAVENProject/src/main/java/start/Main.java
@@ -1,6 +1,7 @@
 package start;
 
 import jeu.Painter;
+import map.LevelManager;
 import spotify.MP3;
 
 import engine.GameEngineGraphical;
@@ -18,7 +19,7 @@ public class Main {
 		Jeu game = new Jeu("helpFilePacman.txt");
 		Painter painter = new Painter();
 		Controller controller = new Controller();
-
+		
 		//pour la musique
 		
 		MP3 mp3 = new MP3("cyberPacMusic1bon.wav");
diff --git a/MAVENProject/src/main/resources/Obstacles/level_one2.png b/MAVENProject/src/main/resources/Obstacles/level_one2.png
deleted file mode 100644
index cea31bb2c7c094fce1a6a9ac189959214952c777..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1092
zcmeAS@N?(olHy`uVBq!ia0y~yV6b6eU=ZP8V_;yo$Q-B1z`(#*9OUlAu<o49O9lq!
zf1WOmArbCV!@d2a9R+HWCu|VaoS{4+H9}SBn2bVNZy-~6gKhG27R4tFkrS8&1U9tE
zD70`KY0KTg&~=<`GDB16FZb}>tBxO$?!W!FI`sYCRi3NF&)PKpe8M2~)w%yk!{1Af
zbNXZ%J{WB6e3EnWoaY4P`aA7*vxR>gpRawV(Qo_rh0dRDSxj?bUM4Ndv@GGzvcKlK
zJu>GO+{ym6`$nxz!td~$dNVzixp$3u<h*&hbD5YU{tMnd+q9)vqTxo=slJFbjqDr$
ziVEaCgJvu#(A}G4RCw{s;s|cXpj$I$e}5h{W#9Qlmu7GO$eq8m+0@1EU(ul`F_%+K
z5e<h5nJqXPMU59SUpBiOT2ZhtEK{JhI5p~6gjkUK+OxNI&xpttvgcYVl5s;`jUi#n
zllGl&V$Ux<;3<2OcgwoF7RmLA3zDC?Gqxm%H1FCfa&>X(q{A6)hkKLGz08#4=8}JJ
z9yEn7J@DOGZa+CIt;M#NcQVY_u*`b$qF;}NR~jWg=*Ya;oGg{xXP#nLnyI)|XF-$C
zJf^w;Cbh#N1r_HRHstIm{Cgqibejvm@$Z!P<%S;*X7!|{<%wVY%Nl%`Tjuw}r{Po1
zi5)f(E={#M{Mzj>lQq-yWr69OvO!-~?l!tLxmkYR{KxC+x;`})7YU1))^%S#@NlVA
z-Oj0tw#01j?Vb8cHsIwf1uNe8+}V|1ChzwX*zx6mYEH+q`3{e>*S@vV+LBngXQ4pi
z(?eUuR=LY3pJSc=&`<a1k@KapzSB?S>`G<i=F@rYUf}08dxP_$ncv@LtvSZ^NpeBd
zvzUql%D;+rr+kvUqjuoOKc-E$v{p%N*za#P_m<!5ld9@`Gt^A3O<rwzSjJjSb@@pF
z19QLUm*(DDb#?>)qA2N1n@7Idtj?xkCht~wXB&OyzU69ooG<gGX6|ll)$VnMHqS4~
zZMg4qve87&PN+-HVxHqmu@zrd6d$|ql+xZmbzOz-)ZHfY8y4}bj=lRo<nX(^d6zay
zX?$6?X=CfH-8pX(zO)zmMIKfx%xs^&wLBm;d(q{4SMN8gdc{`#$(Xyh?wfSjVTNP;
zvl5o2Hh+wmcBkpo_GSD=rfk1`j2*J)HZQngShlC}V)y+jk9UWkE{mT!=hP?hz2BB?
zY&Q(u#kS&e`D>Y{<&zJcp3C{`>^I9(`SB0VU(*i}Q=k9t5?{pfz3s1N-4WUqHT}-5
zd6r@#*GfO~#A|NQW?RD?dE?lv$Y;F1Q@63+^Si_~iJ|Ax6%Uc6SEAkbymMUQJLBq(
zHcji02k*>Z&FcCdJX^vt`q0y|t|wPHCruT#v3@W&@`9_OTANg9<7GYDsvnj$@@b`w
zd@ELV>gImCDHPt%eSTJTtA2cwL5tGC6N}m3MD29voOt8se};g|yf?k~yZmNgU|{fc
L^>bP0l+XkKNGJqr

diff --git a/MAVENProject/src/main/resources/Obstacles/level_one_monster.png b/MAVENProject/src/main/resources/Obstacles/level_one_monster.png
new file mode 100644
index 0000000000000000000000000000000000000000..dbf6127863a90ac8f334fa6d15705d3b9f97528e
GIT binary patch
literal 916
zcmeAS@N?(olHy`uVBq!ia0y~yV6b6eU=ZP8V_;yo$Q-B1z`(#*9OUlAu<o49O9lpJ
zKTj9OkO=qQ2*a{l4gzy^eYq<w9XzIV=;`k0z3sp#&SB0``Hk~WQW3LX0++|!Ydd^`
z4sv%EGhYoj<-dArS=eWHq28|!*4Eaapa0))W`0sd^|#@aAg^Nr6MwfI+59be-;#*#
z`FEp!tM?>-KRbDX{J(wCX^(fC|26JE`I+;4>bl9DckTEe`oH3TFV+xq>TJ(K6IajA
zTdP!m#@Vq?H#yHM;$6}%?rI~=#iyesD|U8qL-=*ogBKO8d|d9n@QHuE|Hb8`jN&Kn
z8>+(ZF&<@_`@PU%d+fPmPEo7pSn#~q79m~s>_f?-9rcOZAAb<$V0!#mTHsxGqRb-C
zHM(l2oOY#7_X=tL-X1Pp^~Z4K8Fl-Vz(-o{8H-s07W9VdUT?89@MyniVfZ87<k7^L
zHaux1JLB11Zp_MIQ2baZ>>;>hwX$J*$zisdV<r)|tjr8H%#V(<=$$F;!QB(Ydv^MV
zQ`Tn`Z!t(4+UtG)dwC|?dVLl})AGf0mwcRg<Y=xrlUKX+GhbzigL9;AHhjEzf$>I!
zvThtlj6%_-BVV~*$VJJNntxHBX~E3E$7T{BF*~YKc$UXueoMooD*|5^3Ew?efBDa6
zgMOYaQHNb(T2q~5{>^<6yPsL6->vT9olliwtfI-HyHuAv<o`Iu?f2H=>V}`O|9CFV
ziZIW4Ht9BRn#ryE;b%JY!e{rgN1VPXvB24c=R~@K_tv@ygG!6%QfFQz^~t!jaxo+?
zU3vKX(<yd(o18xT_v%#Yuf4tZ;?=gYLm>?5i_hxXPkhjE;YG4OZ`bM>OP`#b8TaSy
zlVAE@b}HyH^7lTvy+g_QnqN`pr6qpND}Kb4<y4z5{wRJu@@%G}hq*NW$!V(&GOSN3
zKWe?~==9jL6-veVbz#o8J1QHC9Sfs{s?8!!cs(^b*7sXh;ohu!NowcyrR@63Tt)lN
zwno=h>!^AbmwvK4!&m>Ke%X)EX${+ZE6hsN^51PRJM3WEV3}E4uUFNP@BJ(7!V&iW
z3=CD=C!9Y>1T?OR*j?c^y}dfk%*pK7*$W5Ls;=u_-no0q?*PRm+!?NSb!8`SEH${j
zTeDaE^`)~Z@AtgTeKEu5ltEzs?u{EJ-+p>!(z&dii)UZ0_Uf~oVkolFmG|-Mn1CaD
ddh0G3i>K~-yKCpP1q=)f44$rjF6*2UngF&PqhtU8

literal 0
HcmV?d00001

-- 
GitLab