diff --git a/source/map.cpp b/source/map.cpp index 714e638..44ad4d8 100644 --- a/source/map.cpp +++ b/source/map.cpp @@ -243,7 +243,7 @@ t_tile_map Map::getTile(SDL_Point p) } // Devuelve el valor de la variable -int Map::getTileWidth() +int Map::getTileSize() { return tile_size; } \ No newline at end of file diff --git a/source/map.h b/source/map.h index e78cbef..771ffd5 100644 --- a/source/map.h +++ b/source/map.h @@ -67,7 +67,7 @@ public: t_tile_map getTile(SDL_Point p); // Devuelve el valor de la variable - int getTileWidth(); + int getTileSize(); }; #endif diff --git a/source/player.cpp b/source/player.cpp index aebab6d..6fe8ec9 100644 --- a/source/player.cpp +++ b/source/player.cpp @@ -198,7 +198,7 @@ bool Player::checkMapCollisions() // Mueve al jugador en función de la velocidad/desplazamiento void Player::move() { - const int tile = map->getTileWidth(); + const int tile = map->getTileSize(); x += vx; if (checkMapCollisions()) @@ -273,6 +273,11 @@ bool Player::isOnFloor() updateFeet(); + if (underFeet[0].y % map->getTileSize() != 0) + { + return false; + } + for (auto f : underFeet) { onFloor |= ((map->getTile(f) == wall) || (map->getTile(f) == passable));