Corregido el orden de ejecución update-checkEvents-render en todas las secciones del juego para evitar que el juego tarde en actualizarse cuando hay muchos eventos

This commit is contained in:
2023-09-19 22:18:24 +02:00
parent 9bb4696eb9
commit 3ece7f9ec5
13 changed files with 49 additions and 54 deletions

View File

@@ -1739,7 +1739,7 @@ void Game::renderScoreBoard()
{
if (jscore::getNumUsers() > 0)
{
const std::string txt = jscore::getUserName(0).substr(0,12) + " - " + updateScoreText((Uint32)jscore::getPoints(0));
const std::string txt = jscore::getUserName(0).substr(0, 12) + " - " + updateScoreText((Uint32)jscore::getPoints(0));
textScoreBoard->writeCentered(PLAY_AREA_CENTER_X, offset4, txt);
}
else
@@ -2785,9 +2785,6 @@ void Game::updateEnemyDeployCounter()
// Actualiza el juego
void Game::update()
{
// Comprueba los eventos que hay en cola
checkEventHandler();
// Comprueba que la diferencia de ticks sea mayor a la velocidad del juego
if (SDL_GetTicks() - ticks > ticksSpeed)
{
@@ -3377,6 +3374,9 @@ section_t Game::run()
// Actualiza la lógica del juego
update();
// Comprueba los eventos que hay en cola
checkEvents();
// Dibuja los objetos
render();
}
@@ -3388,9 +3388,6 @@ section_t Game::run()
// Actualiza las variables del menu de pausa del juego
void Game::updatePausedGame()
{
// Comprueba los eventos que hay en la cola
checkEventHandler();
// Calcula la lógica de los objetos
if (SDL_GetTicks() - ticks > ticksSpeed)
{
@@ -3525,6 +3522,7 @@ void Game::runPausedGame()
while ((section.subsection == GAME_SECTION_PAUSE) && (section.name == PROG_SECTION_GAME))
{
updatePausedGame();
checkEvents();
renderPausedGame();
}
}
@@ -3535,26 +3533,6 @@ void Game::updateGameOverScreen()
// Variables
static int postFade = 0;
// Comprueba los eventos que hay en la cola
while (SDL_PollEvent(eventHandler) != 0)
{
// Evento de salida de la aplicación
if (eventHandler->type == SDL_QUIT)
{
section.name = PROG_SECTION_QUIT;
break;
}
else if (eventHandler->type == SDL_KEYDOWN && eventHandler->key.repeat == 0)
{
if (gameCompleted)
{
postFade = 1;
fade->activateFade();
JA_PlaySound(itemPickUpSound);
}
}
}
// Calcula la lógica de los objetos
if (SDL_GetTicks() - ticks > ticksSpeed)
{
@@ -3615,6 +3593,26 @@ void Game::updateGameOverScreen()
}
}
}
// Comprueba los eventos que hay en la cola
while (SDL_PollEvent(eventHandler) != 0)
{
// Evento de salida de la aplicación
if (eventHandler->type == SDL_QUIT)
{
section.name = PROG_SECTION_QUIT;
break;
}
else if (eventHandler->type == SDL_KEYDOWN && eventHandler->key.repeat == 0)
{
if (gameCompleted)
{
postFade = 1;
fade->activateFade();
JA_PlaySound(itemPickUpSound);
}
}
}
}
// Dibuja los elementos de la pantalla de game over
@@ -3859,7 +3857,7 @@ bool Game::allPlayersAreDead()
}
// Comprueba los eventos que hay en cola
void Game::checkEventHandler()
void Game::checkEvents()
{
while (SDL_PollEvent(eventHandler) != 0)
{