protected Point2D checkWallCollision(float newX, float newY) {
		float fromX = Math.min(getPosition().getX(), newX);
		float toX = Math.max(getPosition().getX() + getWidth(), newX + getWidth());
		
		float fromY = Math.min(getPosition().getY(), newY);
		float toY = Math.max(getPosition().getY() + getHeight(), newY + getHeight());
		
		int fromTileX = (int)(fromX / game.getTileWidth());
		if (fromTileX < 0) fromTileX = 0;
		int toTileX = (int)(toX / game.getTileWidth());
		
		int fromTileY = (int)(fromY / game.getTileHeight());
		if (fromTileY < 0) fromTileY = 0;
		int toTileY = (int)(toY / game.getTileHeight());

		Tile[][] walls = game.getTiles();		
		for (int x = fromTileX; x <= toTileX && x < game.getNumTilesX(); x++) {
			for (int y = fromTileY; y <= toTileY && y < game.getNumTilesY(); y++) {
				Tile tile = walls[x][y];
				if (tile != null && collidesWith(tile)) {
//					System.out.println("Detected Wall Collision");
//					System.out.println("CurrPos: " + getPosition().getX() + ":" + getPosition().getY());					
//					System.out.println("NewPos: " + newX + ":" + newY);
//					System.out.println("fromTileX: " + fromTileX + " toTileX: " + toTileX);
//					System.out.println("fromTileY: " + fromTileY + " toTileY: " + toTileY);
//					System.out.println("Collided with tile at: " + x + ":" + y);
//					System.out.println("Tile pixel posx " + x * Wall.SIZE + " width: " + Wall.SIZE);
//					System.out.println("Tile pixel posy " + y * Wall.SIZE + " height: " + Wall.SIZE);					
					return tile.getPosition();				
				}
			}
		}
		return null;
	}