Ya realiza bien las colisiones en el salto

This commit is contained in:
2022-07-10 18:49:26 +02:00
parent 216fc1e19c
commit f931890e95
3 changed files with 44 additions and 22 deletions

View File

@@ -115,7 +115,7 @@ void Game::update()
mRoom->update();
mPlayer->update();
checkPlayerAndWalls(); // Debe ir detras del player update, por si se ha metido en algun muro, sacarlo
checkPlayerAndWalls(); // Debe ir detras del player update, por si se ha metido en algun muro
checkPlayerOnBorder();
checkPlayerOnFloor();
}
@@ -211,7 +211,7 @@ void Game::checkPlayerOnFloor()
{
mPlayer->setStatus(STATUS_STANDING);
}
else
else if (mPlayer->getStatus() != STATUS_JUMPING)
{
mPlayer->setStatus(STATUS_FALLING);
}
@@ -220,8 +220,7 @@ void Game::checkPlayerOnFloor()
// Comprueba que el jugador no atraviese ninguna pared
void Game::checkPlayerAndWalls()
{
// Hayque comprobar las cuatro esquinas del tile superior
// y las cuatro del tile inferior
// Comprueba las cuatro esquinas de los dos tiles del jugador
SDL_Rect rect = mPlayer->getRect();
SDL_Point p1 = {rect.x, rect.y};
SDL_Point p2 = {rect.x + 7, rect.y};
@@ -244,7 +243,8 @@ void Game::checkPlayerAndWalls()
if (test)
{
// Si hay colisión, deshace el movimiento y lo pone en modo caída
mPlayer->undoLastMove();
// mPlayer->setStatus(STATUS_STANDING);
mPlayer->setStatus(STATUS_FALLING);
}
}