Trabajando con el isOnFloor y los tiles passable
This commit is contained in:
@@ -243,7 +243,7 @@ t_tile_map Map::getTile(SDL_Point p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Devuelve el valor de la variable
|
// Devuelve el valor de la variable
|
||||||
int Map::getTileWidth()
|
int Map::getTileSize()
|
||||||
{
|
{
|
||||||
return tile_size;
|
return tile_size;
|
||||||
}
|
}
|
||||||
@@ -67,7 +67,7 @@ public:
|
|||||||
t_tile_map getTile(SDL_Point p);
|
t_tile_map getTile(SDL_Point p);
|
||||||
|
|
||||||
// Devuelve el valor de la variable
|
// Devuelve el valor de la variable
|
||||||
int getTileWidth();
|
int getTileSize();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ bool Player::checkMapCollisions()
|
|||||||
// Mueve al jugador en función de la velocidad/desplazamiento
|
// Mueve al jugador en función de la velocidad/desplazamiento
|
||||||
void Player::move()
|
void Player::move()
|
||||||
{
|
{
|
||||||
const int tile = map->getTileWidth();
|
const int tile = map->getTileSize();
|
||||||
|
|
||||||
x += vx;
|
x += vx;
|
||||||
if (checkMapCollisions())
|
if (checkMapCollisions())
|
||||||
@@ -273,6 +273,11 @@ bool Player::isOnFloor()
|
|||||||
|
|
||||||
updateFeet();
|
updateFeet();
|
||||||
|
|
||||||
|
if (underFeet[0].y % map->getTileSize() != 0)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
for (auto f : underFeet)
|
for (auto f : underFeet)
|
||||||
{
|
{
|
||||||
onFloor |= ((map->getTile(f) == wall) || (map->getTile(f) == passable));
|
onFloor |= ((map->getTile(f) == wall) || (map->getTile(f) == passable));
|
||||||
|
|||||||
Reference in New Issue
Block a user