diff --git a/src/main/java/se/urmo/game/collision/CollisionChecker.java b/src/main/java/se/urmo/game/collision/CollisionChecker.java index c8303b7..8b0b1b8 100644 --- a/src/main/java/se/urmo/game/collision/CollisionChecker.java +++ b/src/main/java/se/urmo/game/collision/CollisionChecker.java @@ -5,6 +5,7 @@ import lombok.extern.slf4j.Slf4j; import se.urmo.game.main.GamePanel; import se.urmo.game.util.Direction; import se.urmo.game.map.GameMap; +import se.urmo.game.util.Pair; import java.awt.Point; import java.util.Collections; @@ -31,7 +32,8 @@ public class CollisionChecker { ); }; - log.debug("{} boundaries for {} are {}", direction, position, boundaries); + List bs = boundaries.stream().map(p -> new Pair(p.x, p.y, GameMap.screenToRow(p.y), GameMap.screenToCol(p.x))).toList(); + log.debug("{} boundaries for {} are {}", direction, position, bs); List normalized = boundaries.stream() .map(p -> normalizePosition(direction, p, agent_width, agent_height)) diff --git a/src/main/java/se/urmo/game/entities/PacMan.java b/src/main/java/se/urmo/game/entities/PacMan.java index c8dd0f8..1db9962 100644 --- a/src/main/java/se/urmo/game/entities/PacMan.java +++ b/src/main/java/se/urmo/game/entities/PacMan.java @@ -77,13 +77,12 @@ public class PacMan { PACMAN_SIZE, PACMAN_SIZE, null); g.drawImage(COLLISION_BOX, position.x - COLLISION_BOX_OFFSET, position.y - COLLISION_BOX_OFFSET, COLLISION_BOX_SIZE, COLLISION_BOX_SIZE, null); - g.setColor(Color.BLUE); + //g.setColor(Color.BLUE); //g.fillRect(position.x-1, position.y-1, 3, 3); } public void update() { updateAnimationTick(); - //if(direction == Direction.NONE) return; if(moving) { Point newPosition = switch (direction) { case RIGHT -> new Point(position.x + speed, position.y); diff --git a/src/main/java/se/urmo/game/map/MapTile.java b/src/main/java/se/urmo/game/map/MapTile.java index 48243b2..3ccfb55 100644 --- a/src/main/java/se/urmo/game/map/MapTile.java +++ b/src/main/java/se/urmo/game/map/MapTile.java @@ -15,7 +15,7 @@ public class MapTile { public MapTile(BufferedImage image, TileType tileType) { this.tileType = tileType; this.image = image; - this.collisionMask = tileType.getValue() != 0 ? createCollisionMask(image) : null; + this.collisionMask = tileType.isSolid() ? createCollisionMask(image) : null; } private boolean[][] createCollisionMask(BufferedImage img) { diff --git a/src/main/java/se/urmo/game/util/Pair.java b/src/main/java/se/urmo/game/util/Pair.java new file mode 100644 index 0000000..c966049 --- /dev/null +++ b/src/main/java/se/urmo/game/util/Pair.java @@ -0,0 +1,24 @@ +package se.urmo.game.util; + +public class Pair{ + private final int x; + private final int y; + int row; + int col; + public Pair(int x, int y, int row, int col){ + this.x = x; + this.y = y; + this.row = row; + this.col = col; + } + + @Override + public String toString() { + return "Pair{" + + "x=" + x + + ", y=" + y + + ", row=" + row + + ", col=" + col + + '}'; + } +}