El sistema usa:



Marcar Tiles con Colisión

Solo los tiles que bloquean el paso (pared, agua, árbol) tienen colision = true:

tiles[1] = new Tile();
tiles[1].imagen = ImageIO.read(getClass().getResource("/tiles/pared_adobe.png"));
tiles[1].colision = true;

tiles[2] = new Tile();
tiles[2].imagen = ImageIO.read(getClass().getResource("/tiles/agua_normal.png"));
tiles[2].colision = true;

tiles[4] = new Tile();
tiles[4].imagen = ImageIO.read(getClass().getResource("/tiles/arbol.png"));
tiles[4].colision = true;


Área Sólida del Jugador

image.png

En la clase Jugador, el área sólida se define para ajustar los límites de colisión.

AreaSolida = new Rectangle();
AreaSolida.x = 8;
AreaSolida.y = 16;
AreaSolida.width = 32;
AreaSolida.height = 32;

Esto hace que el hitbox sea más pequeño que el sprite de 48×48, permitiendo moverse con mayor precisión entre pasillos estrechos.


Integrar Detección en el Movimiento

Dentro de update() del jugador:

  1. Se detecta la dirección según la tecla presionada.
  2. Se mueve el jugador.