From f7adc8551ed49bd5295010a0e0b3937e6072e04e Mon Sep 17 00:00:00 2001 From: Chris Cromer Date: Thu, 10 Oct 2019 23:06:16 -0300 Subject: [PATCH] Remove spanish class names Implement restart Make sure all objectives are reachable Optimize code Signed-off-by: Chris Cromer --- build.gradle | 4 + src/main/java/cl/cromer/azaraka/Azaraka.java | 44 +++- .../azaraka/{Lienzo.java => Canvas.java} | 64 +++-- .../cromer/azaraka/{Celda.java => Cell.java} | 4 +- .../{Constantes.java => Constants.java} | 8 +- ...{VentanaPrincipal.java => MainWindow.java} | 8 +- .../azaraka/{Escenario.java => Scene.java} | 234 ++++++++---------- src/main/java/cl/cromer/azaraka/ai/AI.java | 14 +- .../cromer/azaraka/ai/BreadthFirstSearch.java | 22 +- .../java/cl/cromer/azaraka/ai/PlayerAI.java | 22 +- src/main/java/cl/cromer/azaraka/ai/State.java | 2 +- .../java/cl/cromer/azaraka/json/Json.java | 14 +- .../java/cl/cromer/azaraka/object/Chest.java | 28 +-- .../java/cl/cromer/azaraka/object/Enemy.java | 68 ++--- .../java/cl/cromer/azaraka/object/Gem.java | 16 +- .../java/cl/cromer/azaraka/object/Key.java | 22 +- .../java/cl/cromer/azaraka/object/Object.java | 40 +-- .../cl/cromer/azaraka/object/Obstacle.java | 12 +- .../java/cl/cromer/azaraka/object/Player.java | 92 +++---- .../java/cl/cromer/azaraka/object/Portal.java | 26 +- .../java/cl/cromer/azaraka/sound/Sound.java | 4 +- .../cl/cromer/azaraka/sprite/Animation.java | 4 +- .../java/cl/cromer/azaraka/sprite/Sheet.java | 4 +- 23 files changed, 400 insertions(+), 356 deletions(-) rename src/main/java/cl/cromer/azaraka/{Lienzo.java => Canvas.java} (89%) rename src/main/java/cl/cromer/azaraka/{Celda.java => Cell.java} (98%) rename src/main/java/cl/cromer/azaraka/{Constantes.java => Constants.java} (97%) rename src/main/java/cl/cromer/azaraka/{VentanaPrincipal.java => MainWindow.java} (91%) rename src/main/java/cl/cromer/azaraka/{Escenario.java => Scene.java} (64%) diff --git a/build.gradle b/build.gradle index 16e9224..3f122e3 100644 --- a/build.gradle +++ b/build.gradle @@ -76,9 +76,13 @@ task createDocs { } distributions { + //noinspection GroovyAssignabilityCheck main { + //noinspection GrUnresolvedAccess contents { + //noinspection GrUnresolvedAccess from(createDocs) { + //noinspection GrUnresolvedAccess into 'docs' } } diff --git a/src/main/java/cl/cromer/azaraka/Azaraka.java b/src/main/java/cl/cromer/azaraka/Azaraka.java index 58a0ad7..5b7d6a1 100644 --- a/src/main/java/cl/cromer/azaraka/Azaraka.java +++ b/src/main/java/cl/cromer/azaraka/Azaraka.java @@ -21,18 +21,41 @@ import java.util.logging.Logger; /** * The main class of the game */ -public class Azaraka implements Constantes { +public class Azaraka implements Constants { + /** + * The main window + */ + private MainWindow mainWindow; + /** + * The logger + */ + private final Logger logger; /** - * Initialize the main class + * The main game class */ private Azaraka() { - Logger logger = getLogger(this.getClass(), LogLevel.MAIN); + logger = getLogger(this.getClass(), LogLevel.MAIN); + start(); + } + /** + * Restart the game + */ + public void restart() { + mainWindow.removeAll(); + mainWindow.dispose(); + start(); + } + + /** + * Load the main game window to start + */ + private void start() { logger.info("Load main window"); - VentanaPrincipal ventanaPrincipal = new VentanaPrincipal(); - ventanaPrincipal.setVisible(true); - ventanaPrincipal.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + mainWindow = new MainWindow(this); + mainWindow.setVisible(true); + mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } /** @@ -41,6 +64,15 @@ public class Azaraka implements Constantes { * @param args The arguments passed to the application */ public static void main(String[] args) { + int validCells = (HORIZONTAL_CELLS - 2) * (VERTICAL_CELLS - 2); + validCells = validCells - ENEMIES; + validCells = validCells - (CHESTS * 2); + validCells = validCells - OBSTACLES; + if (validCells < 10) { + // This is to prevent a possible infinite loop + System.out.println("Not enough valid cells: " + validCells + "!"); + System.exit(0); + } new Azaraka(); } diff --git a/src/main/java/cl/cromer/azaraka/Lienzo.java b/src/main/java/cl/cromer/azaraka/Canvas.java similarity index 89% rename from src/main/java/cl/cromer/azaraka/Lienzo.java rename to src/main/java/cl/cromer/azaraka/Canvas.java index f9aa188..be5a466 100644 --- a/src/main/java/cl/cromer/azaraka/Lienzo.java +++ b/src/main/java/cl/cromer/azaraka/Canvas.java @@ -34,7 +34,11 @@ import java.util.logging.Logger; /** * This class extends the canvas to make drawing and listening easier */ -public class Lienzo extends Canvas implements Constantes { +public class Canvas extends java.awt.Canvas implements Constants { + /** + * The main window + */ + private final Azaraka azaraka; /** * The current volume */ @@ -94,7 +98,7 @@ public class Lienzo extends Canvas implements Constantes { /** * The game scene */ - private Escenario escenario; + private Scene scene; /** * The sound played when a key is picked up */ @@ -155,11 +159,13 @@ public class Lienzo extends Canvas implements Constantes { /** * Initialize the canvas * + * @param azaraka The main window * @param width The width to set the canvas * @param height The width to set the canvas */ - public Lienzo(int width, int height) { + public Canvas(Azaraka azaraka, int width, int height) { logger = getLogger(this.getClass(), LogLevel.LIENZO); + this.azaraka = azaraka; setSize(width, height); leftMargin = (width - CELL_PIXELS * HORIZONTAL_CELLS) / 2; @@ -185,25 +191,25 @@ public class Lienzo extends Canvas implements Constantes { gameOverAnimation = new Animation(); gameOverAnimation.addImage(Animation.Direction.NONE, "/img/gameover/gameover.png"); - escenario = new Escenario(this); + scene = new Scene(this); - ArrayList objectList = escenario.generateRandomObjects(); + ArrayList objectList = scene.generateRandomObjects(); while (objectList == null) { - escenario = new Escenario(this); - objectList = escenario.generateRandomObjects(); + scene = new Scene(this); + objectList = scene.generateRandomObjects(); } - escenario.setDoorSound(doorSound); + scene.setDoorSound(doorSound); setBackground(Color.black); Enemy.Direction enemyDirection = Enemy.Direction.DOWN; // Create the gems and later place them in 2 of the chests ArrayList gems = new ArrayList<>(); - Gem lifeGem = new Gem(escenario, new Celda(0, 0, 0, 0)); + Gem lifeGem = new Gem(scene, new Cell(0, 0, 0, 0)); lifeGem.setSound(getGemSound); lifeGem.setType(Gem.Type.LIFE); - Gem deathGem = new Gem(escenario, new Celda(0, 0, 0, 0)); + Gem deathGem = new Gem(scene, new Cell(0, 0, 0, 0)); deathGem.setSound(getGemSound); deathGem.setType(Gem.Type.DEATH); gems.add(lifeGem); @@ -211,12 +217,12 @@ public class Lienzo extends Canvas implements Constantes { for (Object object : objectList) { if (object instanceof Player) { - object.getCelda().setObject(object); + object.getCell().setObject(object); player = (Player) object; threads.put(object, new Thread(object)); } else if (object instanceof Enemy) { - object.getCelda().setObject(object); + object.getCell().setObject(object); if (enemyDirection == Enemy.Direction.UP) { enemyDirection = Enemy.Direction.DOWN; } @@ -235,12 +241,12 @@ public class Lienzo extends Canvas implements Constantes { threads.put(object, new Thread(object)); } else if (object instanceof Chest) { - object.getCelda().setObject(object); + object.getCell().setObject(object); ((Chest) object).setSound(openChestSound); if (gems.size() > 0) { Gem gem = gems.get(0); // Place the gem in the cell above the chest, but don't add it to object2 until we are ready to draw it - gem.setCelda(escenario.getCeldas()[object.getCelda().getX()][object.getCelda().getY() - 1]); + gem.setCell(scene.getCells()[object.getCell().getX()][object.getCell().getY() - 1]); threads.put(gem, new Thread(gem)); ((Chest) object).setGem(gem); gems.remove(gem); @@ -249,13 +255,13 @@ public class Lienzo extends Canvas implements Constantes { threads.put(object, new Thread(object)); } else if (object instanceof Key) { - object.getCelda().setObjectOnBottom(object); + object.getCell().setObjectOnBottom(object); ((Key) object).setSound(getKeySound); keys.add((Key) object); threads.put(object, new Thread(object)); } else if (object instanceof Portal) { - object.getCelda().setObjectOnBottom(object); + object.getCell().setObjectOnBottom(object); portal = (Portal) object; portal.setSound(portalSound); threads.put(object, new Thread(object)); @@ -293,11 +299,11 @@ public class Lienzo extends Canvas implements Constantes { // Shuffle the chests so that the AI doesn't open the correct chests on the first go Collections.shuffle(chests, new Random(23)); for (Chest chest : chests) { - player.getAi().addDestination(new State(chest.getCelda().getX(), chest.getCelda().getY() + 1, State.Type.CHEST, null, 1)); + player.getAi().addDestination(new State(chest.getCell().getX(), chest.getCell().getY() + 1, State.Type.CHEST, null, 1)); } for (Key key : keys) { - player.getAi().addDestination(new State(key.getCelda().getX(), key.getCelda().getY(), State.Type.KEY, null, 0)); + player.getAi().addDestination(new State(key.getCell().getX(), key.getCell().getY(), State.Type.KEY, null, 0)); } Thread thread = new Thread(player.getAi()); @@ -376,6 +382,16 @@ public class Lienzo extends Canvas implements Constantes { if (gameOver) { if (!gameOverRan) { + addKeyListener(new KeyAdapter() { + @Override + public void keyPressed(KeyEvent event) { + super.keyPressed(event); + if (event.getKeyCode() == KeyEvent.VK_ENTER) { + azaraka.restart(); + } + } + }); + stopBackgroundMusic(); try { @@ -410,7 +426,7 @@ public class Lienzo extends Canvas implements Constantes { } } else { - escenario.paintComponent(graphicBuffer); + scene.paintComponent(graphicBuffer); if (won) { int alpha = (255 * 75) / 100; // 75% transparent @@ -427,6 +443,16 @@ public class Lienzo extends Canvas implements Constantes { int x = rectangle.x + (rectangle.width - metrics.stringWidth(message)) / 2; int y = rectangle.y + ((rectangle.height - metrics.getHeight()) / 2) + metrics.getAscent(); graphicBuffer.drawString(message, x, y); + + addKeyListener(new KeyAdapter() { + @Override + public void keyPressed(KeyEvent event) { + super.keyPressed(event); + if (event.getKeyCode() == KeyEvent.VK_ENTER) { + System.exit(0); + } + } + }); } } diff --git a/src/main/java/cl/cromer/azaraka/Celda.java b/src/main/java/cl/cromer/azaraka/Cell.java similarity index 98% rename from src/main/java/cl/cromer/azaraka/Celda.java rename to src/main/java/cl/cromer/azaraka/Cell.java index 82e3244..5767aee 100644 --- a/src/main/java/cl/cromer/azaraka/Celda.java +++ b/src/main/java/cl/cromer/azaraka/Cell.java @@ -27,7 +27,7 @@ import java.util.Map; /** * This class is a cell that will contain a game element such as a player, enemy, prize, etc */ -public class Celda extends JComponent implements Constantes { +public class Cell extends JComponent implements Constants { /** * The x graphical coordinate of the cell */ @@ -69,7 +69,7 @@ public class Celda extends JComponent implements Constantes { * @param x The x coordinate of the cell * @param y The y coordinate of the cell */ - public Celda(int xPixels, int yPixels, int x, int y) { + public Cell(int xPixels, int yPixels, int x, int y) { this.xPixels = xPixels; this.yPixels = yPixels; this.x = x; diff --git a/src/main/java/cl/cromer/azaraka/Constantes.java b/src/main/java/cl/cromer/azaraka/Constants.java similarity index 97% rename from src/main/java/cl/cromer/azaraka/Constantes.java rename to src/main/java/cl/cromer/azaraka/Constants.java index 1548317..b6732cb 100644 --- a/src/main/java/cl/cromer/azaraka/Constantes.java +++ b/src/main/java/cl/cromer/azaraka/Constants.java @@ -29,7 +29,7 @@ import java.util.logging.Logger; /** * Constants used in the game */ -public interface Constantes { +public interface Constants { /** * The name of the game */ @@ -37,7 +37,7 @@ public interface Constantes { /** * Whether or not the player should be controlled by AI */ - boolean PLAYER_AI = false; + boolean PLAYER_AI = true; /** * Make logs */ @@ -55,11 +55,11 @@ public interface Constantes { */ int CELL_PIXELS = 64; /** - * The number of cells to draw horizontally, minimum 8 + * The number of cells to draw horizontally */ int HORIZONTAL_CELLS = 16; /** - * The number of cells to draw vertically, minimum 8 + * The number of cells to draw vertically */ int VERTICAL_CELLS = 9; /** diff --git a/src/main/java/cl/cromer/azaraka/VentanaPrincipal.java b/src/main/java/cl/cromer/azaraka/MainWindow.java similarity index 91% rename from src/main/java/cl/cromer/azaraka/VentanaPrincipal.java rename to src/main/java/cl/cromer/azaraka/MainWindow.java index b2eeedc..ce63502 100644 --- a/src/main/java/cl/cromer/azaraka/VentanaPrincipal.java +++ b/src/main/java/cl/cromer/azaraka/MainWindow.java @@ -25,12 +25,14 @@ import java.util.logging.Logger; /** * The main window of the game */ -public class VentanaPrincipal extends JFrame implements Constantes { +public class MainWindow extends JFrame implements Constants { /** * Initialize the main window + * + * @param azaraka The main game class */ - public VentanaPrincipal() { + public MainWindow(Azaraka azaraka) { Logger logger = getLogger(this.getClass(), LogLevel.VENTANA_PRINCIPAL); logger.info("Create panels"); @@ -52,7 +54,7 @@ public class VentanaPrincipal extends JFrame implements Constantes { logger.warning(e.getMessage()); } - Lienzo canvas = new Lienzo(screenSize.width, screenSize.height - 50); + Canvas canvas = new Canvas(azaraka, screenSize.width, screenSize.height - 50); canvas.setFocusable(true); canvas.requestFocus(); add(canvas); diff --git a/src/main/java/cl/cromer/azaraka/Escenario.java b/src/main/java/cl/cromer/azaraka/Scene.java similarity index 64% rename from src/main/java/cl/cromer/azaraka/Escenario.java rename to src/main/java/cl/cromer/azaraka/Scene.java index d0b3fd7..b00793a 100644 --- a/src/main/java/cl/cromer/azaraka/Escenario.java +++ b/src/main/java/cl/cromer/azaraka/Scene.java @@ -17,7 +17,6 @@ package cl.cromer.azaraka; import cl.cromer.azaraka.ai.BreadthFirstSearch; import cl.cromer.azaraka.ai.State; -import cl.cromer.azaraka.json.Cell; import cl.cromer.azaraka.json.Json; import cl.cromer.azaraka.object.Object; import cl.cromer.azaraka.object.*; @@ -42,15 +41,15 @@ import java.util.logging.Logger; /** * The scene used for the game */ -public class Escenario extends JComponent implements Constantes { +public class Scene extends JComponent implements Constants { /** * The canvas */ - private final Lienzo canvas; + private final Canvas canvas; /** * The cells of the game */ - private final Celda[][] celdas; + private final Cell[][] cells; /** * The logger */ @@ -67,22 +66,18 @@ public class Escenario extends JComponent implements Constantes { * The sound the door makes */ private Sound doorSound; - /** - * The amount of tries before giving up - */ - private int tries = 0; /** * Initialize the scene * * @param canvas The canvas that this scene is in */ - public Escenario(Lienzo canvas) { + public Scene(Canvas canvas) { logger = getLogger(this.getClass(), LogLevel.ESCENARIO); this.canvas = canvas; loadTextures(); - celdas = new Celda[HORIZONTAL_CELLS][VERTICAL_CELLS]; + cells = new Cell[HORIZONTAL_CELLS][VERTICAL_CELLS]; if (GENERATE_SCENE) { generateScene(); @@ -106,7 +101,7 @@ public class Escenario extends JComponent implements Constantes { if (EXPORT_SCENE) { Json json = new Json(); - json.exportScene(celdas); + json.exportScene(cells); } } @@ -118,37 +113,37 @@ public class Escenario extends JComponent implements Constantes { private void loadScene(String json) { GsonBuilder gsonBuilder = new GsonBuilder(); Gson gson = gsonBuilder.create(); - Cell[][] cells = gson.fromJson(json, Cell[][].class); + cl.cromer.azaraka.json.Cell[][] cells = gson.fromJson(json, cl.cromer.azaraka.json.Cell[][].class); for (int x = 0; x < cells.length; x++) { for (int y = 0; y < cells[x].length; y++) { - celdas[x][y] = new Celda((x * CELL_PIXELS) + canvas.getLeftMargin(), (y * CELL_PIXELS) + canvas.getTopMargin(), x, y); + this.cells[x][y] = new Cell((x * CELL_PIXELS) + canvas.getLeftMargin(), (y * CELL_PIXELS) + canvas.getTopMargin(), x, y); if (cells[x][y].type.equals(Player.class.getName())) { - celdas[x][y].setObject(new Player(null, celdas[x][y])); + this.cells[x][y].setObject(new Player(null, this.cells[x][y])); } else if (cells[x][y].type.equals(Enemy.class.getName())) { - celdas[x][y].setObject(new Enemy(null, celdas[x][y], null)); + this.cells[x][y].setObject(new Enemy(null, this.cells[x][y], null)); } else if (cells[x][y].type.equals(Chest.class.getName())) { - celdas[x][y].setObject(new Chest(null, celdas[x][y])); + this.cells[x][y].setObject(new Chest(null, this.cells[x][y])); } else if (cells[x][y].type.equals(Gem.class.getName())) { - celdas[x][y].setObject(new Gem(null, celdas[x][y])); + this.cells[x][y].setObject(new Gem(null, this.cells[x][y])); } else if (cells[x][y].type.equals(Key.class.getName())) { - celdas[x][y].setObject(new Key(null, celdas[x][y])); + this.cells[x][y].setObject(new Key(null, this.cells[x][y])); } else if (cells[x][y].type.equals(Obstacle.class.getName())) { - celdas[x][y].setObject(new Obstacle(null, celdas[x][y])); + this.cells[x][y].setObject(new Obstacle(null, this.cells[x][y])); } else if (cells[x][y].type.equals(Portal.class.getName())) { - celdas[x][y].setObject(new Portal(null, celdas[x][y])); + this.cells[x][y].setObject(new Portal(null, this.cells[x][y])); } for (int k = 0; k < cells[x][y].textures.size(); k++) { try { - celdas[x][y].addTexture(textureSheet.getTexture(cells[x][y].textures.get(k)), cells[x][y].textures.get(k)); + this.cells[x][y].addTexture(textureSheet.getTexture(cells[x][y].textures.get(k)), cells[x][y].textures.get(k)); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -168,17 +163,15 @@ public class Escenario extends JComponent implements Constantes { ArrayList objectArrayList = new ArrayList<>(); // The player has a fixed position - celdas[2][1].setObject(new Player(this, celdas[2][1])); - objectArrayList.add(celdas[2][1].getObject()); + cells[2][1].setObject(new Player(this, cells[2][1])); + objectArrayList.add(cells[2][1].getObject()); for (int i = 0; i < OBSTACLES; i++) { - random = randomCoordinates(false); - if (random[0] == -1 || random[1] == -1) { - return null; - } - celdas[random[0]][random[1]].setObject(new Obstacle(this, celdas[random[0]][random[1]])); + random = randomCoordinates(); + cells[random[0]][random[1]].setObject(new Obstacle(this, cells[random[0]][random[1]])); + objectArrayList.add(cells[random[0]][random[1]].getObject()); try { - celdas[random[0]][random[1]].addTexture(textureSheet.getTexture(30), 30); + cells[random[0]][random[1]].addTexture(textureSheet.getTexture(30), 30); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -187,105 +180,90 @@ public class Escenario extends JComponent implements Constantes { final Lock lock = new ReentrantLock(true); for (int i = 0; i < ENEMIES; i++) { - random = randomCoordinates(true); - if (random[0] == -1 || random[1] == -1) { - return null; - } - celdas[random[0]][random[1]].setObject(new Enemy(this, celdas[random[0]][random[1]], lock)); - objectArrayList.add(celdas[random[0]][random[1]].getObject()); + random = randomCoordinates(); + cells[random[0]][random[1]].setObject(new Enemy(this, cells[random[0]][random[1]], lock)); + objectArrayList.add(cells[random[0]][random[1]].getObject()); } - random = randomCoordinates(true); - if (random[0] == -1 || random[1] == -1) { - return null; - } - celdas[random[0]][random[1]].setObjectOnBottom(new Portal(this, celdas[random[0]][random[1]])); - objectArrayList.add(celdas[random[0]][random[1]].getObjectOnBottom()); + random = randomCoordinates(); + cells[random[0]][random[1]].setObjectOnBottom(new Portal(this, cells[random[0]][random[1]])); + objectArrayList.add(cells[random[0]][random[1]].getObjectOnBottom()); // Generate enough keys for the chests that will exist for (int i = 0; i < CHESTS; i++) { - random = randomCoordinates(true); - if (random[0] == -1 || random[1] == -1) { - return null; - } - celdas[random[0]][random[1]].setObjectOnBottom(new Key(this, celdas[random[0]][random[1]])); - objectArrayList.add(celdas[random[0]][random[1]].getObjectOnBottom()); + random = randomCoordinates(); + cells[random[0]][random[1]].setObjectOnBottom(new Key(this, cells[random[0]][random[1]])); + objectArrayList.add(cells[random[0]][random[1]].getObjectOnBottom()); } // Chests need to be last to make sure they are openable for (int i = 0; i < CHESTS; i++) { - tries = 0; int random_x = random(0, HORIZONTAL_CELLS - 1); int random_y = random(0, VERTICAL_CELLS - 1); // Don't put a chest if it can't be opened while (random_y + 1 == VERTICAL_CELLS || - celdas[random_x][random_y].containsObject() || - celdas[random_x][random_y + 1].containsObject() || - celdas[random_x][random_y - 1].containsObject() || - checkBreadthFirst(random_x, random_y + 1)) { + cells[random_x][random_y].containsObject() || + cells[random_x][random_y + 1].containsObject()) { random_x = random(0, HORIZONTAL_CELLS - 1); random_y = random(0, VERTICAL_CELLS - 1); - tries++; - if (tries == HORIZONTAL_CELLS) { - random[0] = -1; - random[1] = -1; - break; + } + cells[random_x][random_y].setObject(new Chest(this, cells[random_x][random_y])); + objectArrayList.add(cells[random_x][random_y].getObject()); + } + + for (Object object : objectArrayList) { + if (object instanceof Chest) { + int x = object.getCell().getX(); + int y = object.getCell().getY(); + if (pathInvalid(x, y + 1)) { + return null; } } - if (random[0] == -1 || random[1] == -1) { - return null; + else if (object instanceof Portal || object instanceof Key) { + int x = object.getCell().getX(); + int y = object.getCell().getY(); + if (pathInvalid(x, y)) { + return null; + } } - celdas[random_x][random_y].setObjectOnBottom(new Chest(this, celdas[random_x][random_y])); - objectArrayList.add(celdas[random_x][random_y].getObjectOnBottom()); } return objectArrayList; } + /** + * Check if the path to the objective is valid + * + * @param x The x coordinate of the objective + * @param y The y coordinate of the objective + * @return Returns true if valid or false otherwise + */ + private boolean pathInvalid(int x, int y) { + BreadthFirstSearch breadthFirstSearch = new BreadthFirstSearch(this); + State playerState = new State(2, 1, State.Type.START, null, 0); + State objectiveState = new State(x, y, State.Type.EXIT, null, 0); + return !breadthFirstSearch.search(playerState, objectiveState); + } + /** * Get random x and y coordinates * - * @param checkPath Check if the path can be reached using AI * @return Returns an array with the coordinates */ - private int[] randomCoordinates(boolean checkPath) { - tries = 0; + private int[] randomCoordinates() { int[] random = new int[2]; random[0] = random(0, HORIZONTAL_CELLS - 1); random[1] = random(0, VERTICAL_CELLS - 1); // If the cell is not empty look for another // If the cell is not reachable by the player look for another // If the player can't reach the bottom right corner look for another - while (celdas[random[0]][random[1]].containsObject() || (checkPath && checkBreadthFirst(random[0], random[1]))) { + while (cells[random[0]][random[1]].containsObject()) { random[0] = random(0, HORIZONTAL_CELLS - 1); random[1] = random(0, VERTICAL_CELLS - 1); - tries++; - if (tries == VERTICAL_CELLS) { - random[0] = -1; - random[1] = -1; - break; - } } return random; } - /** - * Check the path using BreadFirst-Search - * - * @param x The x position to check - * @param y The y position to check - * @return Returns true if the object is reachable or false otherwise - */ - private boolean checkBreadthFirst(int x, int y) { - BreadthFirstSearch breadthFirstSearch = new BreadthFirstSearch(this); - return (!breadthFirstSearch.search( - new State(2, 1, State.Type.START, null, 0), - new State(x, y, State.Type.EXIT, null, 0)) || - !breadthFirstSearch.search( - new State(2, 1, State.Type.START, null, 0), - new State(HORIZONTAL_CELLS - 2, VERTICAL_CELLS - 2, State.Type.EXIT, null, 0))); - } - /** * Generate the scene manually without the JSON file */ @@ -293,9 +271,9 @@ public class Escenario extends JComponent implements Constantes { for (int x = 0; x < HORIZONTAL_CELLS; x++) { for (int y = 0; y < VERTICAL_CELLS; y++) { logger.info("Generate cell x: " + x + " y: " + y + " manually"); - celdas[x][y] = new Celda((x * CELL_PIXELS) + canvas.getLeftMargin(), (y * CELL_PIXELS) + canvas.getTopMargin(), x, y); + cells[x][y] = new Cell((x * CELL_PIXELS) + canvas.getLeftMargin(), (y * CELL_PIXELS) + canvas.getTopMargin(), x, y); try { - celdas[x][y].addTexture(textureSheet.getTexture(0), 0); + cells[x][y].addTexture(textureSheet.getTexture(0), 0); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -303,9 +281,9 @@ public class Escenario extends JComponent implements Constantes { if (x == 0 && y == 0) { // Top left corner - celdas[x][y].setObject(new Obstacle(this, celdas[x][y])); + cells[x][y].setObject(new Obstacle(this, cells[x][y])); try { - celdas[x][y].addTexture(textureSheet.getTexture(33), 33); + cells[x][y].addTexture(textureSheet.getTexture(33), 33); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -313,9 +291,9 @@ public class Escenario extends JComponent implements Constantes { } else if (x == HORIZONTAL_CELLS - 1 && y == 0) { // Top right corner - celdas[x][y].setObject(new Obstacle(this, celdas[x][y])); + cells[x][y].setObject(new Obstacle(this, cells[x][y])); try { - celdas[x][y].addTexture(textureSheet.getTexture(37), 37); + cells[x][y].addTexture(textureSheet.getTexture(37), 37); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -323,9 +301,9 @@ public class Escenario extends JComponent implements Constantes { } else if (x == 0 && y == VERTICAL_CELLS - 1) { // Bottom left corner - celdas[x][y].setObject(new Obstacle(this, celdas[x][y])); + cells[x][y].setObject(new Obstacle(this, cells[x][y])); try { - celdas[x][y].addTexture(textureSheet.getTexture(97), 97); + cells[x][y].addTexture(textureSheet.getTexture(97), 97); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -333,9 +311,9 @@ public class Escenario extends JComponent implements Constantes { } else if (x == HORIZONTAL_CELLS - 1 && y == VERTICAL_CELLS - 1) { // Bottom right corner - celdas[x][y].setObject(new Obstacle(this, celdas[x][y])); + cells[x][y].setObject(new Obstacle(this, cells[x][y])); try { - celdas[x][y].addTexture(textureSheet.getTexture(101), 101); + cells[x][y].addTexture(textureSheet.getTexture(101), 101); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -343,12 +321,12 @@ public class Escenario extends JComponent implements Constantes { } else if (y == 0) { // Top wall - celdas[x][y].setObject(new Obstacle(this, celdas[x][y])); + cells[x][y].setObject(new Obstacle(this, cells[x][y])); if (x == 1) { // Left door frame try { - celdas[x][y].addTexture(textureSheet.getTexture(144), 144); - celdas[x][y].addTexture(textureSheet.getTexture(192), 192); + cells[x][y].addTexture(textureSheet.getTexture(144), 144); + cells[x][y].addTexture(textureSheet.getTexture(192), 192); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -357,7 +335,7 @@ public class Escenario extends JComponent implements Constantes { else if (x == 2) { // Door try { - celdas[x][y].addTexture(textureSheet.getTexture(145), 145); + cells[x][y].addTexture(textureSheet.getTexture(145), 145); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -366,8 +344,8 @@ public class Escenario extends JComponent implements Constantes { else if (x == 3) { // Right door frame try { - celdas[x][y].addTexture(textureSheet.getTexture(146), 146); - celdas[x][y].addTexture(textureSheet.getTexture(194), 194); + cells[x][y].addTexture(textureSheet.getTexture(146), 146); + cells[x][y].addTexture(textureSheet.getTexture(194), 194); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -376,7 +354,7 @@ public class Escenario extends JComponent implements Constantes { else if (x == 8) { // Broken wall piece try { - celdas[x][y].addTexture(textureSheet.getTexture(105), 105); + cells[x][y].addTexture(textureSheet.getTexture(105), 105); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -384,8 +362,8 @@ public class Escenario extends JComponent implements Constantes { } else if (x % 2 == 0) { try { - celdas[x][y].addTexture(textureSheet.getTexture(34), 34); - celdas[x][y].addTexture(textureSheet.getTexture(222), 222); + cells[x][y].addTexture(textureSheet.getTexture(34), 34); + cells[x][y].addTexture(textureSheet.getTexture(222), 222); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -393,7 +371,7 @@ public class Escenario extends JComponent implements Constantes { } else { try { - celdas[x][y].addTexture(textureSheet.getTexture(35), 35); + cells[x][y].addTexture(textureSheet.getTexture(35), 35); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -402,11 +380,11 @@ public class Escenario extends JComponent implements Constantes { } else if (x == 0) { // Left wall - celdas[x][y].setObject(new Obstacle(this, celdas[x][y])); + cells[x][y].setObject(new Obstacle(this, cells[x][y])); if (y % 2 == 0) { try { - celdas[x][y].addTexture(textureSheet.getTexture(49), 49); - celdas[x][y].addTexture(textureSheet.getTexture(255), 255); + cells[x][y].addTexture(textureSheet.getTexture(49), 49); + cells[x][y].addTexture(textureSheet.getTexture(255), 255); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -414,7 +392,7 @@ public class Escenario extends JComponent implements Constantes { } else { try { - celdas[x][y].addTexture(textureSheet.getTexture(65), 65); + cells[x][y].addTexture(textureSheet.getTexture(65), 65); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -423,11 +401,11 @@ public class Escenario extends JComponent implements Constantes { } else if (x == HORIZONTAL_CELLS - 1) { // Right wall - celdas[x][y].setObject(new Obstacle(this, celdas[x][y])); + cells[x][y].setObject(new Obstacle(this, cells[x][y])); if (y % 2 == 0) { try { - celdas[x][y].addTexture(textureSheet.getTexture(53), 53); - celdas[x][y].addTexture(textureSheet.getTexture(238), 238); + cells[x][y].addTexture(textureSheet.getTexture(53), 53); + cells[x][y].addTexture(textureSheet.getTexture(238), 238); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -435,7 +413,7 @@ public class Escenario extends JComponent implements Constantes { } else { try { - celdas[x][y].addTexture(textureSheet.getTexture(69), 69); + cells[x][y].addTexture(textureSheet.getTexture(69), 69); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -444,11 +422,11 @@ public class Escenario extends JComponent implements Constantes { } else if (y == VERTICAL_CELLS - 1) { // Bottom wall - celdas[x][y].setObject(new Obstacle(this, celdas[x][y])); + cells[x][y].setObject(new Obstacle(this, cells[x][y])); if (x % 2 == 0) { try { - celdas[x][y].addTexture(textureSheet.getTexture(98), 98); - celdas[x][y].addTexture(textureSheet.getTexture(207), 207); + cells[x][y].addTexture(textureSheet.getTexture(98), 98); + cells[x][y].addTexture(textureSheet.getTexture(207), 207); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -456,7 +434,7 @@ public class Escenario extends JComponent implements Constantes { } else { try { - celdas[x][y].addTexture(textureSheet.getTexture(99), 99); + cells[x][y].addTexture(textureSheet.getTexture(99), 99); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -484,8 +462,8 @@ public class Escenario extends JComponent implements Constantes { * * @return Returns a matrix of the cells of the game */ - public Celda[][] getCeldas() { - return celdas; + public Cell[][] getCells() { + return cells; } /** @@ -507,7 +485,7 @@ public class Escenario extends JComponent implements Constantes { public void update(Graphics g) { for (int i = 0; i < HORIZONTAL_CELLS; i++) { for (int j = 0; j < VERTICAL_CELLS; j++) { - celdas[i][j].paintComponent(g); + cells[i][j].paintComponent(g); } } } @@ -517,7 +495,7 @@ public class Escenario extends JComponent implements Constantes { * * @return Returns the parent canvas */ - public Lienzo getCanvas() { + public Canvas getCanvas() { return canvas; } @@ -559,9 +537,9 @@ public class Escenario extends JComponent implements Constantes { */ public void openDoor(boolean doorOpen) { if (!doorOpen && isDoorOpen()) { - celdas[2][0].setObject(new Obstacle(this, celdas[2][0])); + cells[2][0].setObject(new Obstacle(this, cells[2][0])); try { - celdas[2][0].addTexture(textureSheet.getTexture(193), 193); + cells[2][0].addTexture(textureSheet.getTexture(193), 193); } catch (SheetException e) { logger.warning(e.getMessage()); @@ -570,8 +548,8 @@ public class Escenario extends JComponent implements Constantes { playDoorSound(); } else if (doorOpen && !isDoorOpen()) { - celdas[2][0].removeTexture(193); - celdas[2][0].setObject(null); + cells[2][0].removeTexture(193); + cells[2][0].setObject(null); this.doorOpen = true; playDoorSound(); } diff --git a/src/main/java/cl/cromer/azaraka/ai/AI.java b/src/main/java/cl/cromer/azaraka/ai/AI.java index c65651f..49be624 100644 --- a/src/main/java/cl/cromer/azaraka/ai/AI.java +++ b/src/main/java/cl/cromer/azaraka/ai/AI.java @@ -15,7 +15,7 @@ package cl.cromer.azaraka.ai; -import cl.cromer.azaraka.Escenario; +import cl.cromer.azaraka.Scene; import java.util.logging.Logger; @@ -26,7 +26,7 @@ public class AI implements Runnable { /** * The scene of the game */ - private final Escenario escenario; + private final Scene scene; /** * The logger */ @@ -39,10 +39,10 @@ public class AI implements Runnable { /** * Initialize the AI * - * @param escenario The scene of the game + * @param scene The scene of the game */ - protected AI(Escenario escenario) { - this.escenario = escenario; + protected AI(Scene scene) { + this.scene = scene; } /** @@ -50,8 +50,8 @@ public class AI implements Runnable { * * @return Returns the scene */ - protected Escenario getEscenario() { - return escenario; + protected Scene getScene() { + return scene; } /** diff --git a/src/main/java/cl/cromer/azaraka/ai/BreadthFirstSearch.java b/src/main/java/cl/cromer/azaraka/ai/BreadthFirstSearch.java index 81af61f..993565f 100644 --- a/src/main/java/cl/cromer/azaraka/ai/BreadthFirstSearch.java +++ b/src/main/java/cl/cromer/azaraka/ai/BreadthFirstSearch.java @@ -15,8 +15,8 @@ package cl.cromer.azaraka.ai; -import cl.cromer.azaraka.Constantes; -import cl.cromer.azaraka.Escenario; +import cl.cromer.azaraka.Constants; +import cl.cromer.azaraka.Scene; import java.awt.geom.Point2D; import java.util.ArrayList; @@ -24,7 +24,7 @@ import java.util.ArrayList; /** * This is an implementation of the Breadth-First search algorithm with multiple objectives */ -public class BreadthFirstSearch extends AI implements Constantes { +public class BreadthFirstSearch extends AI implements Constants { /** * The queued states to check */ @@ -57,10 +57,10 @@ public class BreadthFirstSearch extends AI implements Constantes { /** * Initialize the algorithm * - * @param escenario The scene the AI is in + * @param scene The scene the AI is in */ - public BreadthFirstSearch(Escenario escenario) { - super(escenario); + public BreadthFirstSearch(Scene scene) { + super(scene); setLogger(getLogger(this.getClass(), LogLevel.AI)); } @@ -99,6 +99,8 @@ public class BreadthFirstSearch extends AI implements Constantes { } } + // TODO: remove escenario from the algorithm + /** * Move up if possible * @@ -106,7 +108,7 @@ public class BreadthFirstSearch extends AI implements Constantes { */ private void moveUp(State state) { if (state.getY() > 0) { - if (getEscenario().getCeldas()[state.getX()][state.getY() - 1].getObject() == null) { + if (getScene().getCells()[state.getX()][state.getY() - 1].getObject() == null) { State up = new State(state.getX(), state.getY() - 1, State.Type.UP, state, state.getImportance()); if (!history.contains(up)) { queuedStates.add(up); @@ -128,7 +130,7 @@ public class BreadthFirstSearch extends AI implements Constantes { */ private void moveDown(State state) { if (state.getY() < VERTICAL_CELLS - 1) { - if (getEscenario().getCeldas()[state.getX()][state.getY() + 1].getObject() == null) { + if (getScene().getCells()[state.getX()][state.getY() + 1].getObject() == null) { State down = new State(state.getX(), state.getY() + 1, State.Type.DOWN, state, state.getImportance()); if (!history.contains(down)) { queuedStates.add(down); @@ -150,7 +152,7 @@ public class BreadthFirstSearch extends AI implements Constantes { */ private void moveLeft(State state) { if (state.getX() > 0) { - if (getEscenario().getCeldas()[state.getX() - 1][state.getY()].getObject() == null) { + if (getScene().getCells()[state.getX() - 1][state.getY()].getObject() == null) { State left = new State(state.getX() - 1, state.getY(), State.Type.LEFT, state, state.getImportance()); if (!history.contains(left)) { queuedStates.add(left); @@ -172,7 +174,7 @@ public class BreadthFirstSearch extends AI implements Constantes { */ private void moveRight(State state) { if (state.getX() < HORIZONTAL_CELLS - 1) { - if (getEscenario().getCeldas()[state.getX() + 1][state.getY()].getObject() == null) { + if (getScene().getCells()[state.getX() + 1][state.getY()].getObject() == null) { State right = new State(state.getX() + 1, state.getY(), State.Type.RIGHT, state, state.getImportance()); if (!history.contains(right)) { queuedStates.add(right); diff --git a/src/main/java/cl/cromer/azaraka/ai/PlayerAI.java b/src/main/java/cl/cromer/azaraka/ai/PlayerAI.java index de56240..f7989fa 100644 --- a/src/main/java/cl/cromer/azaraka/ai/PlayerAI.java +++ b/src/main/java/cl/cromer/azaraka/ai/PlayerAI.java @@ -15,7 +15,7 @@ package cl.cromer.azaraka.ai; -import cl.cromer.azaraka.Escenario; +import cl.cromer.azaraka.Scene; import cl.cromer.azaraka.object.Player; import cl.cromer.azaraka.object.Portal; import cl.cromer.azaraka.sprite.Animation; @@ -34,11 +34,11 @@ public class PlayerAI extends BreadthFirstSearch { /** * Initialize the algorithm * - * @param escenario The scene the AI is in + * @param scene The scene the AI is in * @param player The player controlled by the AI */ - public PlayerAI(Escenario escenario, Player player) { - super(escenario); + public PlayerAI(Scene scene, Player player) { + super(scene); this.player = player; } @@ -57,9 +57,9 @@ public class PlayerAI extends BreadthFirstSearch { player.keyPressed(KeyEvent.VK_UP); } player.interact(); - Portal portal = getEscenario().getCanvas().getPortal(); + Portal portal = getScene().getCanvas().getPortal(); if (portal.getState() == Portal.State.ACTIVE) { - addDestination(new State(portal.getCelda().getX(), portal.getCelda().getY(), State.Type.PORTAL, null, 2)); + addDestination(new State(portal.getCell().getX(), portal.getCell().getY(), State.Type.PORTAL, null, 2)); } return true; } @@ -70,7 +70,7 @@ public class PlayerAI extends BreadthFirstSearch { case KEY: return true; case PORTAL: - if (player.hasTaintedGem() && getEscenario().getCanvas().getPortal().getState() == Portal.State.ACTIVE) { + if (player.hasTaintedGem() && getScene().getCanvas().getPortal().getState() == Portal.State.ACTIVE) { return true; } break; @@ -101,13 +101,13 @@ public class PlayerAI extends BreadthFirstSearch { break; case PORTAL: // If the portal is active head towards it - if (player.hasTaintedGem() && getEscenario().getCanvas().getPortal().getState() == Portal.State.ACTIVE) { + if (player.hasTaintedGem() && getScene().getCanvas().getPortal().getState() == Portal.State.ACTIVE) { return true; } break; case EXIT: // If the door is open head to it - if (getEscenario().isDoorOpen()) { + if (getScene().isDoorOpen()) { return true; } break; @@ -137,7 +137,7 @@ public class PlayerAI extends BreadthFirstSearch { } } - getEscenario().getCanvas().repaint(); + getScene().getCanvas().repaint(); } /** @@ -145,6 +145,6 @@ public class PlayerAI extends BreadthFirstSearch { */ @Override public void getNewInitial() { - setInitial(new State(player.getCelda().getX(), player.getCelda().getY(), State.Type.START, null, 0)); + setInitial(new State(player.getCell().getX(), player.getCell().getY(), State.Type.START, null, 0)); } } diff --git a/src/main/java/cl/cromer/azaraka/ai/State.java b/src/main/java/cl/cromer/azaraka/ai/State.java index 166d225..efd567e 100644 --- a/src/main/java/cl/cromer/azaraka/ai/State.java +++ b/src/main/java/cl/cromer/azaraka/ai/State.java @@ -38,7 +38,7 @@ public class State { /** * The importance of the objective, higher is more important */ - private int importance; + private final int importance; /** * Initialize the state diff --git a/src/main/java/cl/cromer/azaraka/json/Json.java b/src/main/java/cl/cromer/azaraka/json/Json.java index 3c3cec8..8bb7682 100644 --- a/src/main/java/cl/cromer/azaraka/json/Json.java +++ b/src/main/java/cl/cromer/azaraka/json/Json.java @@ -15,8 +15,8 @@ package cl.cromer.azaraka.json; -import cl.cromer.azaraka.Celda; -import cl.cromer.azaraka.Constantes; +import cl.cromer.azaraka.Cell; +import cl.cromer.azaraka.Constants; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -28,7 +28,7 @@ import java.util.logging.Logger; /** * This class handles reading and writing of JSON objects */ -public class Json implements Constantes { +public class Json implements Constants { /** * The logger */ @@ -46,11 +46,11 @@ public class Json implements Constantes { * * @param celdas The cells of the scene to export */ - public void exportScene(Celda[][] celdas) { - Cell[][] cells = new Cell[celdas.length][celdas[0].length]; + public void exportScene(Cell[][] celdas) { + cl.cromer.azaraka.json.Cell[][] cells = new cl.cromer.azaraka.json.Cell[celdas.length][celdas[0].length]; for (int x = 0; x < celdas.length; x++) { for (int y = 0; y < celdas[x].length; y++) { - cells[x][y] = new Cell(); + cells[x][y] = new cl.cromer.azaraka.json.Cell(); if (celdas[x][y].getObject() != null) { cells[x][y].type = celdas[x][y].getObject().getClass().getName(); } @@ -68,7 +68,7 @@ public class Json implements Constantes { * * @param cells The JSON cells object */ - private void writeScene(Cell[][] cells) { + private void writeScene(cl.cromer.azaraka.json.Cell[][] cells) { GsonBuilder gsonBuilder; if (PRETTY_JSON) { gsonBuilder = new GsonBuilder().setPrettyPrinting(); diff --git a/src/main/java/cl/cromer/azaraka/object/Chest.java b/src/main/java/cl/cromer/azaraka/object/Chest.java index 8385db0..c0d82cc 100644 --- a/src/main/java/cl/cromer/azaraka/object/Chest.java +++ b/src/main/java/cl/cromer/azaraka/object/Chest.java @@ -15,9 +15,9 @@ package cl.cromer.azaraka.object; -import cl.cromer.azaraka.Celda; -import cl.cromer.azaraka.Constantes; -import cl.cromer.azaraka.Escenario; +import cl.cromer.azaraka.Cell; +import cl.cromer.azaraka.Constants; +import cl.cromer.azaraka.Scene; import cl.cromer.azaraka.sound.Sound; import cl.cromer.azaraka.sound.SoundException; import cl.cromer.azaraka.sprite.Animation; @@ -28,7 +28,7 @@ import cl.cromer.azaraka.sprite.SheetException; /** * This class handles the chests */ -public class Chest extends Object implements Constantes { +public class Chest extends Object implements Constants { /** * The current state of the chest */ @@ -49,11 +49,11 @@ public class Chest extends Object implements Constantes { /** * Initialize the chest * - * @param escenario The scene the chest is in - * @param celda The cell that contains the chest + * @param scene The scene the chest is in + * @param cell The cell that contains the chest */ - public Chest(Escenario escenario, Celda celda) { - super(escenario, celda); + public Chest(Scene scene, Cell cell) { + super(scene, cell); setLogger(getLogger(this.getClass(), LogLevel.CHEST)); loadChestAnimation(); @@ -109,7 +109,7 @@ public class Chest extends Object implements Constantes { catch (AnimationException e) { getLogger().warning(e.getMessage()); } - getEscenario().getCanvas().repaint(); + getScene().getCanvas().repaint(); } } @@ -136,7 +136,7 @@ public class Chest extends Object implements Constantes { */ private void playChestOpenSound() { try { - sound.setVolume(getEscenario().getCanvas().getVolume()); + sound.setVolume(getScene().getCanvas().getVolume()); sound.play(); } catch (SoundException e) { @@ -188,19 +188,19 @@ public class Chest extends Object implements Constantes { gemLoops--; } else if (gemLoops == 0) { - gem.getCelda().setObjectOnTop(null); + gem.getCell().setObjectOnTop(null); gem.setYScale(24); gem.setXScale(24); gem.setUseOffset(false); - getEscenario().getCanvas().getPlayer().addInventory(gem); - getEscenario().getCanvas().getPortal().setState(Portal.State.ACTIVE); + getScene().getCanvas().getPlayer().addInventory(gem); + getScene().getCanvas().getPortal().setState(Portal.State.ACTIVE); gemLoops--; } } } else if (state == State.OPENING) { animate(); - getEscenario().getCanvas().repaint(); + getScene().getCanvas().repaint(); } } } diff --git a/src/main/java/cl/cromer/azaraka/object/Enemy.java b/src/main/java/cl/cromer/azaraka/object/Enemy.java index 56cd5a1..c54a561 100644 --- a/src/main/java/cl/cromer/azaraka/object/Enemy.java +++ b/src/main/java/cl/cromer/azaraka/object/Enemy.java @@ -15,9 +15,9 @@ package cl.cromer.azaraka.object; -import cl.cromer.azaraka.Celda; -import cl.cromer.azaraka.Constantes; -import cl.cromer.azaraka.Escenario; +import cl.cromer.azaraka.Cell; +import cl.cromer.azaraka.Constants; +import cl.cromer.azaraka.Scene; import cl.cromer.azaraka.sound.Sound; import cl.cromer.azaraka.sound.SoundException; import cl.cromer.azaraka.sprite.Animation; @@ -29,7 +29,7 @@ import java.util.concurrent.locks.Lock; /** * This class handles the enemy object */ -public class Enemy extends Object implements Constantes { +public class Enemy extends Object implements Constants { /** * The lock helps prevent race conditions when checking positioning */ @@ -46,12 +46,12 @@ public class Enemy extends Object implements Constantes { /** * Initialize the enemy * - * @param escenario The scene the enemy is in - * @param celda The cell this enemy is in + * @param scene The scene the enemy is in + * @param cell The cell this enemy is in * @param lock The lock used to prevent the threads from conflicting */ - public Enemy(Escenario escenario, Celda celda, Lock lock) { - super(escenario, celda); + public Enemy(Scene scene, Cell cell, Lock lock) { + super(scene, cell); setLogger(getLogger(this.getClass(), LogLevel.ENEMY)); this.lock = lock; loadEnemyAnimation(); @@ -78,7 +78,7 @@ public class Enemy extends Object implements Constantes { */ private void playAttackSound() { try { - sound.setVolume(getEscenario().getCanvas().getVolume()); + sound.setVolume(getScene().getCanvas().getVolume()); sound.play(); } catch (SoundException e) { @@ -114,10 +114,10 @@ public class Enemy extends Object implements Constantes { int x = getX(); int y = getY(); if (direction == Direction.LEFT) { - if (x > 0 && getEscenario().getCeldas()[x - 1][y].getObject() == null) { - getCelda().setObject(null); - setCelda(getEscenario().getCeldas()[x - 1][y]); - getCelda().setObject(this); + if (x > 0 && getScene().getCells()[x - 1][y].getObject() == null) { + getCell().setObject(null); + setCell(getScene().getCells()[x - 1][y]); + getCell().setObject(this); try { getAnimation().getNextFrame(); @@ -128,7 +128,7 @@ public class Enemy extends Object implements Constantes { setX(getX() - 1); getLogger().info("Move left to x: " + x + " y: " + y); } - else if (x > 0 && getEscenario().getCeldas()[x - 1][y].getObject() instanceof Player) { + else if (x > 0 && getScene().getCells()[x - 1][y].getObject() instanceof Player) { attackPlayer(x - 1, y); } else { @@ -138,10 +138,10 @@ public class Enemy extends Object implements Constantes { } } else if (direction == Direction.RIGHT) { - if (x < (HORIZONTAL_CELLS - 1) && getEscenario().getCeldas()[x + 1][y].getObject() == null) { - getCelda().setObject(null); - setCelda(getEscenario().getCeldas()[x + 1][y]); - getCelda().setObject(this); + if (x < (HORIZONTAL_CELLS - 1) && getScene().getCells()[x + 1][y].getObject() == null) { + getCell().setObject(null); + setCell(getScene().getCells()[x + 1][y]); + getCell().setObject(this); try { getAnimation().getNextFrame(); @@ -152,7 +152,7 @@ public class Enemy extends Object implements Constantes { setX(getX() + 1); getLogger().info("Move right to x: " + x + " y: " + y); } - else if (x < (HORIZONTAL_CELLS - 1) && getEscenario().getCeldas()[x + 1][y].getObject() instanceof Player) { + else if (x < (HORIZONTAL_CELLS - 1) && getScene().getCells()[x + 1][y].getObject() instanceof Player) { attackPlayer(x + 1, y); } else { @@ -162,10 +162,10 @@ public class Enemy extends Object implements Constantes { } } else if (direction == Direction.DOWN) { - if (y < (VERTICAL_CELLS) - 1 && getEscenario().getCeldas()[x][y + 1].getObject() == null) { - getCelda().setObject(null); - setCelda(getEscenario().getCeldas()[x][y + 1]); - getCelda().setObject(this); + if (y < (VERTICAL_CELLS) - 1 && getScene().getCells()[x][y + 1].getObject() == null) { + getCell().setObject(null); + setCell(getScene().getCells()[x][y + 1]); + getCell().setObject(this); try { getAnimation().getNextFrame(); @@ -176,7 +176,7 @@ public class Enemy extends Object implements Constantes { setY(getY() + 1); getLogger().info("Move down to x: " + x + " y: " + y); } - else if (y < (VERTICAL_CELLS - 1) && getEscenario().getCeldas()[x][y + 1].getObject() instanceof Player) { + else if (y < (VERTICAL_CELLS - 1) && getScene().getCells()[x][y + 1].getObject() instanceof Player) { attackPlayer(x, y + 1); } else { @@ -186,10 +186,10 @@ public class Enemy extends Object implements Constantes { } } else if (direction == Direction.UP) { - if (y > 0 && getEscenario().getCeldas()[x][y - 1].getObject() == null) { - getCelda().setObject(null); - setCelda(getEscenario().getCeldas()[x][y - 1]); - getCelda().setObject(this); + if (y > 0 && getScene().getCells()[x][y - 1].getObject() == null) { + getCell().setObject(null); + setCell(getScene().getCells()[x][y - 1]); + getCell().setObject(this); try { getAnimation().getNextFrame(); @@ -200,7 +200,7 @@ public class Enemy extends Object implements Constantes { setY(getY() - 1); getLogger().info("Move up to x: " + x + " y: " + y); } - else if (y > 0 && getEscenario().getCeldas()[x][y - 1].getObject() instanceof Player) { + else if (y > 0 && getScene().getCells()[x][y - 1].getObject() instanceof Player) { attackPlayer(x, y - 1); } else { @@ -218,20 +218,20 @@ public class Enemy extends Object implements Constantes { * @param y The y position of the player */ private void attackPlayer(int x, int y) { - if (getEscenario().getCanvas().getPlayer().getHealth() > 0) { + if (getScene().getCanvas().getPlayer().getHealth() > 0) { getLogger().info("Attacked player at x: " + x + " y: " + y); playAttackSound(); - getEscenario().getCanvas().getPlayer().loseHealth(2); + getScene().getCanvas().getPlayer().loseHealth(2); try { - getEscenario().getCeldas()[x][y].addTexture(getEscenario().getTextureSheet().getTexture(12), 12); + getScene().getCells()[x][y].addTexture(getScene().getTextureSheet().getTexture(12), 12); } catch (SheetException e) { getLogger().warning(e.getMessage()); } - getEscenario().getCanvas().getPlayer().attacked(); + getScene().getCanvas().getPlayer().attacked(); if (direction == Direction.UP) { getAnimation().setCurrentDirection(Animation.Direction.LEFT); @@ -267,7 +267,7 @@ public class Enemy extends Object implements Constantes { synchronized (this) { lock.lock(); move(); - getEscenario().getCanvas().repaint(); + getScene().getCanvas().repaint(); lock.unlock(); } } diff --git a/src/main/java/cl/cromer/azaraka/object/Gem.java b/src/main/java/cl/cromer/azaraka/object/Gem.java index 3d43992..80cdacd 100644 --- a/src/main/java/cl/cromer/azaraka/object/Gem.java +++ b/src/main/java/cl/cromer/azaraka/object/Gem.java @@ -15,8 +15,8 @@ package cl.cromer.azaraka.object; -import cl.cromer.azaraka.Celda; -import cl.cromer.azaraka.Escenario; +import cl.cromer.azaraka.Cell; +import cl.cromer.azaraka.Scene; import cl.cromer.azaraka.sound.Sound; import cl.cromer.azaraka.sound.SoundException; import cl.cromer.azaraka.sprite.Animation; @@ -46,11 +46,11 @@ public class Gem extends Object { /** * Initialize the gem object * - * @param escenario The scene the gem is in - * @param celda The cell the gem is in + * @param scene The scene the gem is in + * @param cell The cell the gem is in */ - public Gem(Escenario escenario, Celda celda) { - super(escenario, celda); + public Gem(Scene scene, Cell cell) { + super(scene, cell); setLogger(getLogger(this.getClass(), LogLevel.GEM)); loadGemAnimation(null); setAnimation(taintedAnimation); @@ -119,7 +119,7 @@ public class Gem extends Object { */ public void playGemSound() { try { - sound.setVolume(getEscenario().getCanvas().getVolume()); + sound.setVolume(getScene().getCanvas().getVolume()); sound.play(); } catch (SoundException e) { @@ -201,7 +201,7 @@ public class Gem extends Object { } synchronized (this) { animate(); - getEscenario().getCanvas().repaint(); + getScene().getCanvas().repaint(); } } } diff --git a/src/main/java/cl/cromer/azaraka/object/Key.java b/src/main/java/cl/cromer/azaraka/object/Key.java index d23ac75..260cbe7 100644 --- a/src/main/java/cl/cromer/azaraka/object/Key.java +++ b/src/main/java/cl/cromer/azaraka/object/Key.java @@ -15,9 +15,9 @@ package cl.cromer.azaraka.object; -import cl.cromer.azaraka.Celda; -import cl.cromer.azaraka.Constantes; -import cl.cromer.azaraka.Escenario; +import cl.cromer.azaraka.Cell; +import cl.cromer.azaraka.Constants; +import cl.cromer.azaraka.Scene; import cl.cromer.azaraka.sound.Sound; import cl.cromer.azaraka.sound.SoundException; import cl.cromer.azaraka.sprite.Animation; @@ -28,7 +28,7 @@ import cl.cromer.azaraka.sprite.SheetException; /** * This class contains the key */ -public class Key extends Object implements Constantes { +public class Key extends Object implements Constants { /** * The current state of the key */ @@ -41,11 +41,11 @@ public class Key extends Object implements Constantes { /** * Initialize the key * - * @param escenario The scene the key is in - * @param celda The cell the key is in + * @param scene The scene the key is in + * @param cell The cell the key is in */ - public Key(Escenario escenario, Celda celda) { - super(escenario, celda); + public Key(Scene scene, Cell cell) { + super(scene, cell); setLogger(getLogger(this.getClass(), LogLevel.KEY)); loadKeyAnimation(); } @@ -92,7 +92,7 @@ public class Key extends Object implements Constantes { */ public void playGetKeySound() { try { - sound.setVolume(getEscenario().getCanvas().getVolume()); + sound.setVolume(getScene().getCanvas().getVolume()); sound.play(); } catch (SoundException e) { @@ -114,7 +114,7 @@ public class Key extends Object implements Constantes { */ public void getKey() { // Remove the key from the cell - getCelda().setObjectOnBottom(null); + getCell().setObjectOnBottom(null); setState(State.HELD); } @@ -169,7 +169,7 @@ public class Key extends Object implements Constantes { } synchronized (this) { animate(); - getEscenario().getCanvas().repaint(); + getScene().getCanvas().repaint(); } } // The thread was killed, set the animation to frame 4 diff --git a/src/main/java/cl/cromer/azaraka/object/Object.java b/src/main/java/cl/cromer/azaraka/object/Object.java index 05921b1..d6493c7 100644 --- a/src/main/java/cl/cromer/azaraka/object/Object.java +++ b/src/main/java/cl/cromer/azaraka/object/Object.java @@ -15,9 +15,9 @@ package cl.cromer.azaraka.object; -import cl.cromer.azaraka.Celda; -import cl.cromer.azaraka.Constantes; -import cl.cromer.azaraka.Escenario; +import cl.cromer.azaraka.Cell; +import cl.cromer.azaraka.Constants; +import cl.cromer.azaraka.Scene; import cl.cromer.azaraka.sprite.Animation; import cl.cromer.azaraka.sprite.AnimationException; import cl.cromer.azaraka.sprite.Sheet; @@ -30,11 +30,11 @@ import java.util.logging.Logger; /** * All game objects extend this class */ -public class Object implements Runnable, Constantes { +public class Object implements Runnable, Constants { /** * The scene the object is in */ - private final Escenario escenario; + private final Scene scene; /** * The current x position of the object */ @@ -46,7 +46,7 @@ public class Object implements Runnable, Constantes { /** * The cell the object is in */ - private Celda celda; + private Cell cell; /** * The animation of the object */ @@ -75,14 +75,14 @@ public class Object implements Runnable, Constantes { /** * Initialize the object * - * @param escenario The scene the object is in - * @param celda The cell the object is in + * @param scene The scene the object is in + * @param cell The cell the object is in */ - protected Object(Escenario escenario, Celda celda) { - this.escenario = escenario; - this.celda = celda; - this.x = celda.getX(); - this.y = celda.getY(); + protected Object(Scene scene, Cell cell) { + this.scene = scene; + this.cell = cell; + this.x = cell.getX(); + this.y = cell.getY(); } /** @@ -144,8 +144,8 @@ public class Object implements Runnable, Constantes { * * @return Returns the scene */ - protected Escenario getEscenario() { - return escenario; + protected Scene getScene() { + return scene; } /** @@ -153,17 +153,17 @@ public class Object implements Runnable, Constantes { * * @return Returns the cell */ - public Celda getCelda() { - return celda; + public Cell getCell() { + return cell; } /** * Get the cell the object is in * - * @param celda The cell + * @param cell The cell */ - public void setCelda(Celda celda) { - this.celda = celda; + public void setCell(Cell cell) { + this.cell = cell; } /** diff --git a/src/main/java/cl/cromer/azaraka/object/Obstacle.java b/src/main/java/cl/cromer/azaraka/object/Obstacle.java index 7c38889..f653c79 100644 --- a/src/main/java/cl/cromer/azaraka/object/Obstacle.java +++ b/src/main/java/cl/cromer/azaraka/object/Obstacle.java @@ -15,8 +15,8 @@ package cl.cromer.azaraka.object; -import cl.cromer.azaraka.Celda; -import cl.cromer.azaraka.Escenario; +import cl.cromer.azaraka.Cell; +import cl.cromer.azaraka.Scene; /** * This class handles the obstacles @@ -25,10 +25,10 @@ public class Obstacle extends Object { /** * Initialize the obstacle * - * @param escenario The scene the object is in - * @param celda The cell the object is in + * @param scene The scene the object is in + * @param cell The cell the object is in */ - public Obstacle(Escenario escenario, Celda celda) { - super(escenario, celda); + public Obstacle(Scene scene, Cell cell) { + super(scene, cell); } } diff --git a/src/main/java/cl/cromer/azaraka/object/Player.java b/src/main/java/cl/cromer/azaraka/object/Player.java index 32e8cbe..bf19765 100644 --- a/src/main/java/cl/cromer/azaraka/object/Player.java +++ b/src/main/java/cl/cromer/azaraka/object/Player.java @@ -15,9 +15,9 @@ package cl.cromer.azaraka.object; -import cl.cromer.azaraka.Celda; -import cl.cromer.azaraka.Constantes; -import cl.cromer.azaraka.Escenario; +import cl.cromer.azaraka.Cell; +import cl.cromer.azaraka.Constants; +import cl.cromer.azaraka.Scene; import cl.cromer.azaraka.ai.PlayerAI; import cl.cromer.azaraka.sprite.Animation; import cl.cromer.azaraka.sprite.AnimationException; @@ -28,7 +28,7 @@ import java.util.ArrayList; /** * This class contains the player */ -public class Player extends Object implements Constantes { +public class Player extends Object implements Constants { /** * The maximum health of the player */ @@ -49,14 +49,14 @@ public class Player extends Object implements Constantes { /** * Initialize the player * - * @param escenario The scene the player is in - * @param celda The cell the player is in + * @param scene The scene the player is in + * @param cell The cell the player is in */ - public Player(Escenario escenario, Celda celda) { - super(escenario, celda); + public Player(Scene scene, Cell cell) { + super(scene, cell); setLogger(getLogger(this.getClass(), LogLevel.PLAYER)); loadPlayerAnimation(); - ai = new PlayerAI(escenario, this); + ai = new PlayerAI(scene, this); } /** @@ -81,15 +81,15 @@ public class Player extends Object implements Constantes { * @param keyCode The key code to handle */ public void keyPressed(int keyCode) { - if (getEscenario().isDoorOpen()) { + if (getScene().isDoorOpen()) { ArrayList gems = getInventoryGems(); if (gems.size() < 2) { - getEscenario().openDoor(false); + getScene().openDoor(false); } else { for (Gem gem : gems) { if (gem.getState() == Gem.State.TAINTED) { - getEscenario().openDoor(false); + getScene().openDoor(false); } } } @@ -125,14 +125,14 @@ public class Player extends Object implements Constantes { int y = getY(); getLogger().info("Up key pressed"); if (x == 2 && y == 0) { - getEscenario().getCanvas().win(); + getScene().getCanvas().win(); } else if (y > 0) { - Object type = getEscenario().getCeldas()[x][y - 1].getObject(); + Object type = getScene().getCells()[x][y - 1].getObject(); if (type == null) { - Object typeBottom = getEscenario().getCeldas()[x][y - 1].getObjectOnBottom(); + Object typeBottom = getScene().getCells()[x][y - 1].getObjectOnBottom(); if (typeBottom instanceof Key) { - for (Key key : getEscenario().getCanvas().getKeys()) { + for (Key key : getScene().getCanvas().getKeys()) { if (key.checkPosition(x, y - 1)) { // Get the key getKey(key); @@ -141,12 +141,12 @@ public class Player extends Object implements Constantes { } } else if (typeBottom instanceof Portal) { - getEscenario().getCanvas().getPortal().purifyGems(); + getScene().getCanvas().getPortal().purifyGems(); } - getCelda().setObject(null); - setCelda(getEscenario().getCeldas()[x][y - 1]); - getCelda().setObject(this); + getCell().setObject(null); + setCell(getScene().getCells()[x][y - 1]); + getCell().setObject(this); if (changeDirection(Animation.Direction.UP)) { try { @@ -190,11 +190,11 @@ public class Player extends Object implements Constantes { int y = getY(); getLogger().info("Down key pressed"); if (y < (VERTICAL_CELLS - 1)) { - Object type = getEscenario().getCeldas()[x][y + 1].getObject(); + Object type = getScene().getCells()[x][y + 1].getObject(); if (type == null) { - Object typeBottom = getEscenario().getCeldas()[x][y + 1].getObjectOnBottom(); + Object typeBottom = getScene().getCells()[x][y + 1].getObjectOnBottom(); if (typeBottom instanceof Key) { - for (Key key : getEscenario().getCanvas().getKeys()) { + for (Key key : getScene().getCanvas().getKeys()) { if (key.checkPosition(x, y + 1)) { // Get the key getKey(key); @@ -203,12 +203,12 @@ public class Player extends Object implements Constantes { } } else if (typeBottom instanceof Portal) { - getEscenario().getCanvas().getPortal().purifyGems(); + getScene().getCanvas().getPortal().purifyGems(); } - getCelda().setObject(null); - setCelda(getEscenario().getCeldas()[x][y + 1]); - getCelda().setObject(this); + getCell().setObject(null); + setCell(getScene().getCells()[x][y + 1]); + getCell().setObject(this); if (changeDirection(Animation.Direction.DOWN)) { try { @@ -252,11 +252,11 @@ public class Player extends Object implements Constantes { int y = getY(); getLogger().info("Left key pressed"); if (x > 0) { - Object type = getEscenario().getCeldas()[x - 1][y].getObject(); + Object type = getScene().getCells()[x - 1][y].getObject(); if (type == null) { - Object typeBottom = getEscenario().getCeldas()[x - 1][y].getObjectOnBottom(); + Object typeBottom = getScene().getCells()[x - 1][y].getObjectOnBottom(); if (typeBottom instanceof Key) { - for (Key key : getEscenario().getCanvas().getKeys()) { + for (Key key : getScene().getCanvas().getKeys()) { if (key.checkPosition(x - 1, y)) { // Get the key getKey(key); @@ -265,12 +265,12 @@ public class Player extends Object implements Constantes { } } else if (typeBottom instanceof Portal) { - getEscenario().getCanvas().getPortal().purifyGems(); + getScene().getCanvas().getPortal().purifyGems(); } - getCelda().setObject(null); - setCelda(getEscenario().getCeldas()[x - 1][y]); - getCelda().setObject(this); + getCell().setObject(null); + setCell(getScene().getCells()[x - 1][y]); + getCell().setObject(this); if (changeDirection(Animation.Direction.LEFT)) { try { @@ -314,11 +314,11 @@ public class Player extends Object implements Constantes { int y = getY(); getLogger().info("Right key pressed"); if (x < (HORIZONTAL_CELLS - 1)) { - Object type = getEscenario().getCeldas()[x + 1][y].getObject(); + Object type = getScene().getCells()[x + 1][y].getObject(); if (type == null) { - Object typeBottom = getEscenario().getCeldas()[x + 1][y].getObjectOnBottom(); + Object typeBottom = getScene().getCells()[x + 1][y].getObjectOnBottom(); if (typeBottom instanceof Key) { - for (Key key : getEscenario().getCanvas().getKeys()) { + for (Key key : getScene().getCanvas().getKeys()) { if (key.checkPosition(x + 1, y)) { // Get the key getKey(key); @@ -327,12 +327,12 @@ public class Player extends Object implements Constantes { } } else if (typeBottom instanceof Portal) { - getEscenario().getCanvas().getPortal().purifyGems(); + getScene().getCanvas().getPortal().purifyGems(); } - getCelda().setObject(null); - setCelda(getEscenario().getCeldas()[x + 1][y]); - getCelda().setObject(this); + getCell().setObject(null); + setCell(getScene().getCells()[x + 1][y]); + getCell().setObject(this); if (changeDirection(Animation.Direction.RIGHT)) { try { @@ -407,21 +407,21 @@ public class Player extends Object implements Constantes { int y = getY(); getLogger().info("Space bar pressed"); if (getAnimation().getCurrentDirection() == Animation.Direction.UP) { - if (getEscenario().getCeldas()[x][y - 1].getObject() instanceof Chest) { + if (getScene().getCells()[x][y - 1].getObject() instanceof Chest) { if (hasKey()) { getLogger().info("Player opened chest"); gainHealth(2); - for (Chest chest : getEscenario().getCanvas().getChests()) { + for (Chest chest : getScene().getCanvas().getChests()) { if (chest.checkPosition(x, y - 1)) { if (chest.getState() == Chest.State.CLOSED) { chest.setState(Chest.State.OPENING); Gem gem = chest.getGem(); if (gem != null) { gem.playGemSound(); - gem.getCelda().setObjectOnTop(gem); - getEscenario().getCanvas().getPortal().setState(Portal.State.ACTIVE); + gem.getCell().setObjectOnTop(gem); + getScene().getCanvas().getPortal().setState(Portal.State.ACTIVE); } useKey(); break; @@ -591,7 +591,7 @@ public class Player extends Object implements Constantes { synchronized (this) { if (health > 0) { loseHealth(1); - getEscenario().getCanvas().repaint(); + getScene().getCanvas().repaint(); } else { setActive(false); diff --git a/src/main/java/cl/cromer/azaraka/object/Portal.java b/src/main/java/cl/cromer/azaraka/object/Portal.java index ace8c93..c488fba 100644 --- a/src/main/java/cl/cromer/azaraka/object/Portal.java +++ b/src/main/java/cl/cromer/azaraka/object/Portal.java @@ -15,9 +15,9 @@ package cl.cromer.azaraka.object; -import cl.cromer.azaraka.Celda; -import cl.cromer.azaraka.Constantes; -import cl.cromer.azaraka.Escenario; +import cl.cromer.azaraka.Cell; +import cl.cromer.azaraka.Constants; +import cl.cromer.azaraka.Scene; import cl.cromer.azaraka.sound.Sound; import cl.cromer.azaraka.sound.SoundException; import cl.cromer.azaraka.sprite.Animation; @@ -28,7 +28,7 @@ import java.util.ArrayList; /** * This class handles the portal functionality */ -public class Portal extends Object implements Constantes { +public class Portal extends Object implements Constants { /** * The current state of the portal */ @@ -49,11 +49,11 @@ public class Portal extends Object implements Constantes { /** * Initialize the portal * - * @param escenario The scene that contains the portal - * @param celda The cell the portal is in + * @param scene The scene that contains the portal + * @param cell The cell the portal is in */ - public Portal(Escenario escenario, Celda celda) { - super(escenario, celda); + public Portal(Scene scene, Cell cell) { + super(scene, cell); setLogger(getLogger(this.getClass(), LogLevel.PORTAL)); loadPortalAnimations(); } @@ -92,17 +92,17 @@ public class Portal extends Object implements Constantes { */ public void purifyGems() { if (state == State.ACTIVE) { - ArrayList gems = getEscenario().getCanvas().getPlayer().getInventoryGems(); + ArrayList gems = getScene().getCanvas().getPlayer().getInventoryGems(); for (Gem gem : gems) { if (gem.getState() == Gem.State.TAINTED) { gem.setState(Gem.State.PURIFIED); - getEscenario().getCanvas().getPlayer().gainHealth(2); + getScene().getCanvas().getPlayer().gainHealth(2); } } setState(State.INACTIVE); playPortalSound(); if (gems.size() == 2) { - getEscenario().openDoor(true); + getScene().openDoor(true); } } } @@ -121,7 +121,7 @@ public class Portal extends Object implements Constantes { */ private void playPortalSound() { try { - sound.setVolume(getEscenario().getCanvas().getVolume()); + sound.setVolume(getScene().getCanvas().getVolume()); sound.play(); } catch (SoundException e) { @@ -203,7 +203,7 @@ public class Portal extends Object implements Constantes { } synchronized (this) { animate(); - getEscenario().getCanvas().repaint(); + getScene().getCanvas().repaint(); } } } diff --git a/src/main/java/cl/cromer/azaraka/sound/Sound.java b/src/main/java/cl/cromer/azaraka/sound/Sound.java index 78a8993..d661d3b 100644 --- a/src/main/java/cl/cromer/azaraka/sound/Sound.java +++ b/src/main/java/cl/cromer/azaraka/sound/Sound.java @@ -15,7 +15,7 @@ package cl.cromer.azaraka.sound; -import cl.cromer.azaraka.Constantes; +import cl.cromer.azaraka.Constants; import javax.sound.sampled.*; import java.io.BufferedInputStream; @@ -26,7 +26,7 @@ import java.util.logging.Logger; /** * This class handles sound */ -public class Sound implements Constantes { +public class Sound implements Constants { /** * The path to the sound */ diff --git a/src/main/java/cl/cromer/azaraka/sprite/Animation.java b/src/main/java/cl/cromer/azaraka/sprite/Animation.java index bb8319f..e47d82b 100644 --- a/src/main/java/cl/cromer/azaraka/sprite/Animation.java +++ b/src/main/java/cl/cromer/azaraka/sprite/Animation.java @@ -15,7 +15,7 @@ package cl.cromer.azaraka.sprite; -import cl.cromer.azaraka.Constantes; +import cl.cromer.azaraka.Constants; import javax.imageio.ImageIO; import java.awt.*; @@ -28,7 +28,7 @@ import java.util.logging.Logger; /** * This class handles loading the images and animating the sprite */ -public class Animation implements Cloneable, Constantes { +public class Animation implements Cloneable, Constants { /** * The collection of all the images that make up the object */ diff --git a/src/main/java/cl/cromer/azaraka/sprite/Sheet.java b/src/main/java/cl/cromer/azaraka/sprite/Sheet.java index e697e2e..e852789 100644 --- a/src/main/java/cl/cromer/azaraka/sprite/Sheet.java +++ b/src/main/java/cl/cromer/azaraka/sprite/Sheet.java @@ -15,7 +15,7 @@ package cl.cromer.azaraka.sprite; -import cl.cromer.azaraka.Constantes; +import cl.cromer.azaraka.Constants; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; @@ -26,7 +26,7 @@ import java.util.logging.Logger; /** * This class handles loading the images and sub-images */ -public class Sheet implements Constantes { +public class Sheet implements Constants { /** * A list of all the textures in the collection */