corrected out of map bug
This commit is contained in:
@@ -51,13 +51,18 @@ public class GameMap {
|
|||||||
|
|
||||||
public void dig(Vector2 worldCoord) {
|
public void dig(Vector2 worldCoord) {
|
||||||
Vector2 coord = tileMap.toTileMapCoord(worldCoord);
|
Vector2 coord = tileMap.toTileMapCoord(worldCoord);
|
||||||
|
logger.debug("pos: " + coord);
|
||||||
|
|
||||||
tileMap.setTile(13, (int) coord.x, (int) coord.y);
|
tileMap.setTile(13, (int) coord.x, (int) coord.y);
|
||||||
|
|
||||||
for (int i = -1; i < 2; i ++) {
|
for (int i = -1; i < 2; i ++) {
|
||||||
for (int j = -1; j < 2; j ++) {
|
for (int j = -1; j < 2; j ++) {
|
||||||
Tile tile = tileMap.getTile( (int) coord.x + j, (int) coord.y + i);
|
Tile tile = null;
|
||||||
if (!dirtTiles.contains(tile.getId())) {
|
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 tileType = getTileType((int) coord.x + j, (int) coord.y + i);
|
||||||
int tileId = tileTypeToId(tileType);
|
int tileId = tileTypeToId(tileType);
|
||||||
|
|
||||||
@@ -77,9 +82,14 @@ public class GameMap {
|
|||||||
int tileType = 0;
|
int tileType = 0;
|
||||||
for (int i = -1; i < 2; i ++) {
|
for (int i = -1; i < 2; i ++) {
|
||||||
for (int j = -1; j < 2; j ++) {
|
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);
|
tileType += (int) Math.pow(2, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,9 +106,9 @@ public class GameMap {
|
|||||||
return switch (tileType) {
|
return switch (tileType) {
|
||||||
case 2, 3, 6, 7, 71, 323, 327, 66, 322, 67, 258, 259, 263, 262, 326, 70 -> 10; // down
|
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 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 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 -> 15; // left
|
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 -> 21; // inner bot-left corner
|
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 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 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
|
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 42, 106, 362, 298 -> 29; // T down
|
||||||
case 138, 394, 398, 142 -> 35; // T right
|
case 138, 394, 398, 142 -> 35; // T right
|
||||||
case 227, 162, 226, 163 -> 28; // T left
|
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 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 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
|
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.math.Vector2;
|
||||||
import com.badlogic.gdx.utils.ScreenUtils;
|
import com.badlogic.gdx.utils.ScreenUtils;
|
||||||
import com.badlogic.gdx.utils.viewport.FitViewport;
|
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 {
|
public class Minesweeper implements ApplicationListener {
|
||||||
|
|
||||||
|
private static final Logger log = LogManager.getLogger(Minesweeper.class);
|
||||||
private FitViewport viewport;
|
private FitViewport viewport;
|
||||||
private SpriteBatch spriteBatch;
|
private SpriteBatch spriteBatch;
|
||||||
private OrthographicCamera camera;
|
private OrthographicCamera camera;
|
||||||
@@ -20,6 +24,8 @@ public class Minesweeper implements ApplicationListener {
|
|||||||
|
|
||||||
private GameMap gameMap;
|
private GameMap gameMap;
|
||||||
|
|
||||||
|
private Logger logger = LogManager.getLogger();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void create() {
|
public void create() {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user