diff --git a/src/game/level/Level.java b/src/game/level/Level.java index 131a9da..2096757 100644 --- a/src/game/level/Level.java +++ b/src/game/level/Level.java @@ -12,9 +12,7 @@ public class Level { private Tile[][] tiles; private Entity[] entities; private float originX, originY; // Where the 'origin' of the level is the lower left of the floor area - - private static final int SPRITE_PIXELS = 64; - + public Level() { currentLevel = -1; loadLevel(); @@ -92,23 +90,40 @@ public class Level { } } - // TODO: This + // TODO: Add more collision checking private void handleCollisions() { playerWallCollisions(); // Player-entity collisions // Entity-wall collisions } + // TODO: Make this better and stop sending player to middle. private void playerWallCollisions() { - // Check for collisions, flip flag, if flag is true move player + // Check for collision, if found move player - //TODO: Make this better and stop sending player to middle. for (Tile[] tileRow : tiles) { for (Tile tile : tileRow) { if (tile.isWall()) { +// if ((2 * tile.getX() - .5f < player.getX() + .25f && 2 * tile.getX() + .5f > player.getX() + .25f) || ((2 * tile.getX() - .5f < player.getX() - .25f && 2 * tile.getX() + .5f > player.getX() - .25f))){ +// if ((2 * tile.getY() - .5f < player.getY() + .25f && 2 * tile.getY() + .5f > player.getY() + .25f) || ((2 * tile.getY() - .5f < player.getY() - .25f && 2 * tile.getY() + .5f > player.getY() - .25f))){ +// player.setPosition(0f, 0f); +// } +// } + if ((2 * tile.getX() - .5f < player.getX() + .25f && 2 * tile.getX() + .5f > player.getX() + .25f) || ((2 * tile.getX() - .5f < player.getX() - .25f && 2 * tile.getX() + .5f > player.getX() - .25f))){ - if ((2 * tile.getY() - .5f < player.getY() + .25f && 2 * tile.getY() + .5f > player.getY() + .25f) || ((2 * tile.getY() - .5f < player.getY() - .25f && 2 * tile.getY() + .5f > player.getY() - .25f))){ - player.setPosition(0f, 0f); + if ((2 * tile.getY() - .5f < player.getY() + .25f && 2 * tile.getY() + .5f > player.getY() + .25f)){ + player.setPosition(player.getX(), player.getY() - .05f); + } + if ((2 * tile.getY() - .5f < player.getY() - .25f && 2 * tile.getY() + .5f > player.getY() - .25f)) { + player.setPosition(player.getX(), player.getY() + .05f); + } + } + if ((2 * tile.getY() - .5f < player.getY() + .25f && 2 * tile.getY() + .5f > player.getY() + .25f) || ((2 * tile.getY() - .5f < player.getY() - .25f && 2 * tile.getY() + .5f > player.getY() - .25f))){ + if ((2 * tile.getX() - .5f < player.getX() + .25f && 2 * tile.getX() + .5f > player.getX() + .25f)){ + player.setPosition(player.getX() - .05f, player.getY()); + } + if ((2 * tile.getX() - .5f < player.getX() - .25f && 2 * tile.getX() + .5f > player.getX() - .25f)) { + player.setPosition(player.getX() + .05f, player.getY()); } } }