Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Wall collision works but is buggy if you slam into a corner in the no…
…rthwest or southeast.
  • Loading branch information
wjg12004 committed Apr 26, 2016
1 parent 40854a4 commit ac62a72
Showing 1 changed file with 23 additions and 8 deletions.
31 changes: 23 additions & 8 deletions src/game/level/Level.java
Expand Up @@ -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();
Expand Down Expand Up @@ -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());
}
}
}
Expand Down

0 comments on commit ac62a72

Please sign in to comment.