Basic score count working

update takes movement into account
This commit is contained in:
Urban Modig
2025-08-22 11:00:19 +02:00
parent 9bb76ce682
commit b9a43be3c6
9 changed files with 55 additions and 36 deletions

View File

@ -30,6 +30,7 @@ public class PacMan {
@Setter
private boolean moving;
private final BufferedImage[][] movmentImages = new BufferedImage[4][4];
@Getter
private Point position;
private static final BufferedImage COLLISION_BOX = MiscUtil.createOutlinedBox(COLLISION_BOX_SIZE, COLLISION_BOX_SIZE, Color.yellow, 2);
private final CollisionChecker collisionChecker;
@ -82,21 +83,21 @@ public class PacMan {
public void update() {
updateAnimationTick();
if(direction == Direction.NONE) return;
//if(direction == Direction.NONE) return;
if(moving) {
Point newPosition = switch (direction) {
case RIGHT -> new Point(position.x + speed, position.y);
case LEFT -> new Point(position.x - speed, position.y);
case UP -> new Point(position.x, position.y - speed);
case DOWN -> new Point(position.x, position.y + speed);
default -> throw new IllegalStateException("Unexpected value: " + direction);
};
log.debug("At: {},trying to move {} to {}", position, direction.name(), newPosition);
Point destination = collisionChecker.getValidDestination(direction, newPosition, COLLISION_BOX_SIZE, COLLISION_BOX_SIZE);
Point newPosition = switch (direction){
case RIGHT -> new Point(position.x + speed, position.y);
case LEFT -> new Point(position.x - speed, position.y);
case UP -> new Point(position.x , position.y - speed);
case DOWN -> new Point(position.x, position.y + speed);
default -> throw new IllegalStateException("Unexpected value: " + direction);
};
log.debug("At: {},trying to move {} to {}", position, direction.name(), newPosition);
Point destination = collisionChecker.getValidDestination(direction, newPosition, COLLISION_BOX_SIZE, COLLISION_BOX_SIZE);
if(destination != null) {
collisionChecker.removeTile(destination);
position = destination;
if (destination != null) {
position = destination;
}
}
}
@ -114,10 +115,6 @@ public class PacMan {
}
}
public Point getTilePosition() {
return position;
}
public double distanceTo(Point point) {
return position.distance(point);
}