/******************************************************************************* ** ** ** @author: Thanius ** ** @version: 1.0.0 ** ** ** ** @info: All Levels ** ** ** *******************************************************************************/ package bomberman; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.ArrayList; import javax.imageio.ImageIO; public class Level { private ArrayList bricksUndestroyable; private ArrayList bricksDestroyable; private Brick brick; private BufferedImage backgroundImage, exitImage; private Rectangle exitArea; private String mapName; private int x, y, exitX, exitY; public Level(String level) throws IOException { InitLevel(level); } private void InitLevel(String map) throws IOException { backgroundImage = ImageIO.read(getClass().getResource("Images/BomberBackgrounds/MapBlack.gif")); bricksUndestroyable = new ArrayList<>(); bricksDestroyable = new ArrayList<>(); exitArea = new Rectangle(); switch(map) { case "map1": Map1(); break; } } /******************************************************************************* ** ** ** G E T F U N C T I O N S ** ** ** *******************************************************************************/ protected BufferedImage GetBGImage() { return backgroundImage; } protected BufferedImage GetExitImage() { return exitImage; } protected ArrayList GetBricksUndestroyable() { return bricksUndestroyable; } protected ArrayList GetBricksDestroyable() { return bricksDestroyable; } protected Rectangle GetExitArea() { return exitArea; } protected String GetMapName() { return mapName; } protected int GetExitX() { return exitX; } protected int GetExitY() { return exitY; } /******************************************************************************* ** ** ** M A P S ** ** ** *******************************************************************************/ private void Borders() { x = 32; y = 35; // Undestructable Borders/Blocks/Bricks for(int i = 0; i < 23; i++) // Upper Border { brick = new Brick(x, y, "grey"); bricksUndestroyable.add(brick); x += 32; } x = 32; y += 32; for(int i = 0; i < 14; i++) // Left Border { brick = new Brick(x, y, "grey"); bricksUndestroyable.add(brick); y += 32; } x = 32; y = 515; for(int i = 0; i < 23; i++) // Ground Border { brick = new Brick(x, y, "grey"); bricksUndestroyable.add(brick); x += 32; } x = 736; y = 67; for(int i = 0; i < 14; i++) // Right Border { brick = new Brick(x, y, "grey"); bricksUndestroyable.add(brick); y += 32; } } private void Map1() throws IOException { backgroundImage = ImageIO.read(getClass().getResource("Images/BomberBackgrounds/Map1.gif")); mapName = "Level 01"; Borders(); Map1U(); Map1D(); MapExit(); } private void Map1U() // Undestroyable Bricks { x = 96; y = 99; for(int i = 0; i < 85; i++) { if(i == 5) x += 64; if(i == 10) x += 64; if(i == 11) x += 64; if(i == 12) { x = 96; y += 32; } if(i == 13) x += 32 * 3; if(i == 14) x += 64; if(i == 15) x += 32 * 3; if(i == 16) x += 64; if(i == 17) { x = 96; y += 32; } if(i == 22) x += 64; if(i == 27) x += 64; if(i == 28) x += 64; if(i == 29) { x = 96; y += 64; } if(i == 34) x += 64; if(i == 39) x += 64; if(i == 40) x += 64; if(i == 41) x += 64; if(i == 42) { x = 96; y += 64; } if(i == 60) { x = 96; y += 32; } if(i == 61) x += 32 * 3; if(i == 62) x += 64; if(i == 63) x += 32 * 3; if(i == 64) x += 64; if(i == 65) x += 64; if(i == 66) { x = 96; y += 32; } if(i == 67) x += 32 * 3; if(i == 68) x += 64; if(i == 69) x += 32 * 3; if(i == 70) x += 64; if(i == 71) x += 64; if(i == 72) { x = 96; y += 32; } if(i == 73) x += 32 * 3; if(i == 74) x += 64; if(i == 75) x += 32 * 3; if(i == 76) x += 64; if(i == 77) x += 64; if(i == 78) { x = 96; y += 32; } if(i == 79) x += 32 * 3; if(i == 80) x += 64; if(i == 81) x += 32 * 3; if(i == 82) x += 64; if(i == 83) x += 64; if(i == 84) { x = 384; y = 259; } brick = new Brick(x, y, "grey"); bricksUndestroyable.add(brick); x += 32; } } private void Map1D() // Destroyable Bricks { x = 96 + 32; y = 99 - 32; for(int i = 0; i < 124; i++) { if(i == 3) x += 32; if(i == 5) x += 32; if(i == 8) x += 32; if(i == 13) { x = 96 + 32 + (32 * 4); y += 32; } if(i == 15) x += 96 + 64; if(i == 17) x += 32; if(i == 19) { x = 64; y += 32; } if(i == 20) x += 160; if(i == 22) x += 96 + 64; if(i == 24) x += 32; if(i == 25) { x = 64; y += 32; } if(i == 26) x += 96 + 64; if(i == 28) x += 96 + 64; if(i == 30) x += 32; if(i == 31) { x = 64; y += 32; } if(i == 48) { x = 128; y += 64; } if(i == 50) { x = 64; y += 32; } if(i == 51) x += 576; if(i == 53) { x = 64; y += 32; } if(i == 54) x += 32; if(i == 55) x += 32; if(i == 56) x += 32; if(i == 58) x += 32; if(i == 59) x += 32; if(i == 60) x += 32; if(i == 62) x += 32; if(i == 64) x += 32; if(i == 66) { x = 64; y += 32; } if(i == 67) x += 32; if(i == 68) x += 32; if(i == 69) x += 32; if(i == 71) x += 32; if(i == 72) x += 32; if(i == 73) x += 32; if(i == 75) x += 32; if(i == 77) x += 32; if(i == 79) { x = 64; y += 32; } if(i == 80) x += 32; if(i == 81) x += 32; if(i == 82) x += 32; if(i == 84) x += 32; if(i == 85) x += 32; if(i == 86) x += 32; if(i == 88) x += 32; if(i == 90) { x = 128; y += 32; } if(i == 91) x += 32; if(i == 92) x += 32; if(i == 94) x += 32; if(i == 95) x += 32; if(i == 96) x += 32; if(i == 98) x += 32; if(i == 100) { x = 64; y += 64; } if(i == 121) { x = 256 - 64; y = 259; } if(i == 122) x += 128; if(i == 123) x += 32; brick = new Brick(x, y, "red"); bricksDestroyable.add(brick); x += 32; } } private void MapExit() { switch(mapName) { case "Level 01": exitX = 768; exitY = 100; break; case "Level 02": break; } exitArea.setRect(exitX, exitY, 32, 32); } }