I have some problems with collisions, the collision detection only works either on one x "line", or on one y "line".
Heres the collision code:
public void checkCollision() {
for (int i = 0; i < drawX.size(); i++) {
if (player.getX() == drawX.get(i) + 16 && player.getY() == drawY.get(i)) {
player.setLeft(false);
} else if (player.getX() != drawX.get(i) + 16 && player.getY() != drawY.get(i)) {
player.setLeft(true);
}
if (player.getX() == drawX.get(i) - 16 && player.getY() == drawY.get(i)) {
player.setRight(false);
} else if (player.getX() != drawX.get(i) - 16 && player.getY() != drawY.get(i)){
player.setRight(true);
}
if (player.getX() == drawX.get(i) && player.getY() == drawY.get(i) - 16) {
player.setDown(false);
} else if (player.getX() != drawX.get(i) && player.getY() != drawY.get(i) - 16){
player.setDown(true);
}
if (player.getX() == drawX.get(i) && player.getY() == drawY.get(i) + 16) {
player.setUp(false);
} else if (player.getX() != drawX.get(i) && player.getY() != drawY.get(i) + 16){
player.setUp(true);
}
}
}
drawX and drawY store the positions of the tiles.