corrected out of map bug
This commit is contained in:
@@ -51,13 +51,18 @@ public class GameMap {
|
||||
|
||||
public void dig(Vector2 worldCoord) {
|
||||
Vector2 coord = tileMap.toTileMapCoord(worldCoord);
|
||||
logger.debug("pos: " + coord);
|
||||
|
||||
tileMap.setTile(13, (int) coord.x, (int) coord.y);
|
||||
|
||||
for (int i = -1; i < 2; i ++) {
|
||||
for (int j = -1; j < 2; j ++) {
|
||||
Tile tile = tileMap.getTile( (int) coord.x + j, (int) coord.y + i);
|
||||
if (!dirtTiles.contains(tile.getId())) {
|
||||
Tile tile = null;
|
||||
try {
|
||||
tile = tileMap.getTile((int) coord.x + j, (int) coord.y + i);
|
||||
} catch (IndexOutOfBoundsException e) {
|
||||
logger.info("Out of world check", e);
|
||||
}
|
||||
if ( tile != null && !dirtTiles.contains(tile.getId())) {
|
||||
int tileType = getTileType((int) coord.x + j, (int) coord.y + i);
|
||||
int tileId = tileTypeToId(tileType);
|
||||
|
||||
@@ -77,9 +82,14 @@ public class GameMap {
|
||||
int tileType = 0;
|
||||
for (int i = -1; i < 2; i ++) {
|
||||
for (int j = -1; j < 2; j ++) {
|
||||
Tile tile = tileMap.getTile( coordX + j, coordY + i);
|
||||
Tile tile = null;
|
||||
try {
|
||||
tile = tileMap.getTile(coordX + j, coordY + i);
|
||||
} catch (IndexOutOfBoundsException e) {
|
||||
logger.info("Out of world check", e);
|
||||
}
|
||||
|
||||
if (!dirtTiles.contains(tile.getId())) {
|
||||
if (tile != null && !dirtTiles.contains(tile.getId())) {
|
||||
tileType += (int) Math.pow(2, p);
|
||||
}
|
||||
|
||||
@@ -96,9 +106,9 @@ public class GameMap {
|
||||
return switch (tileType) {
|
||||
case 2, 3, 6, 7, 71, 323, 327, 66, 322, 67, 258, 259, 263, 262, 326, 70 -> 10; // down
|
||||
case 128, 192, 448, 384, 385, 449, 453, 193, 132, 196, 452, 133, 197, 388, 389 -> 22; // up
|
||||
case 8, 73, 72, 9, 329, 333, 328, 332, 77, 264, 268, 269, 12, 13 -> 17; // right
|
||||
case 32, 288, 292, 36, 356, 357, 33, 97, 353, 96, 100, 101, 37, 293, 352 -> 15; // left
|
||||
case 160, 161, 165, 229, 224, 228, 164 -> 21; // inner bot-left corner
|
||||
case 8, 73, 72, 9, 329, 333, 328, 332, 77, 264, 268, 269, 12, 13, 76 -> 17; // right
|
||||
case 32, 288, 292, 36, 356, 357, 33, 97, 353, 96, 100, 101, 37, 293, 352, 289 -> 15; // left
|
||||
case 160, 161, 165, 229, 224, 228, 164, 225 -> 21; // inner bot-left corner
|
||||
case 10, 74, 330, 334, 266, 270, 78, 14 -> 11; // inner top-right corner
|
||||
case 34, 35, 99, 355, 290, 354, 291, 98 -> 9; // inner top-left corner
|
||||
case 136, 137, 393, 397, 140, 141, 392, 396 -> 23; // inner bot-right corner
|
||||
@@ -108,7 +118,7 @@ public class GameMap {
|
||||
case 42, 106, 362, 298 -> 29; // T down
|
||||
case 138, 394, 398, 142 -> 35; // T right
|
||||
case 227, 162, 226, 163 -> 28; // T left
|
||||
case 38, 102, 358, 359, 294, 295, 39 -> 6; // top-left corner
|
||||
case 38, 102, 358, 359, 294, 295, 39, 103 -> 6; // top-left corner
|
||||
case 204, 205, 461, 456, 457, 200, 201, 460 -> 20; // bot-left corner
|
||||
case 416, 417, 481, 485, 420, 484, 421, 480 -> 18; // bot-right corner
|
||||
case 11, 75, 79, 335, 267, 271, 351, 15 -> 8; // top-right corner
|
||||
|
||||
@@ -9,10 +9,14 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||
import com.badlogic.gdx.math.Vector2;
|
||||
import com.badlogic.gdx.utils.ScreenUtils;
|
||||
import com.badlogic.gdx.utils.viewport.FitViewport;
|
||||
import org.lwjgl.glfw.GLFWDeallocateCallback;
|
||||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
|
||||
public class Minesweeper implements ApplicationListener {
|
||||
|
||||
private static final Logger log = LogManager.getLogger(Minesweeper.class);
|
||||
private FitViewport viewport;
|
||||
private SpriteBatch spriteBatch;
|
||||
private OrthographicCamera camera;
|
||||
@@ -20,6 +24,8 @@ public class Minesweeper implements ApplicationListener {
|
||||
|
||||
private GameMap gameMap;
|
||||
|
||||
private Logger logger = LogManager.getLogger();
|
||||
|
||||
@Override
|
||||
public void create() {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user