Recarga de texturas en el cambio de modo de video

This commit is contained in:
2022-09-22 08:27:28 +02:00
parent e517ef62c8
commit 5806f7352f
6 changed files with 44 additions and 9 deletions

View File

@@ -12,7 +12,7 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input, D
this->debug->setEnabled(true);
// Reserva memoria para los objetos
scoreboard = new ScoreBoard(renderer, asset, &board);
scoreboard = new ScoreBoard(renderer, asset, &board);
eventHandler = new SDL_Event();
itemTracker = new ItemTracker();
map = new Map(asset->get("01.map"), renderer, asset, itemTracker);
@@ -77,19 +77,19 @@ void Game::update()
{
// Actualiza el contador de ticks
ticks = SDL_GetTicks();
// Comprueba los eventos de la cola
checkEventHandler();
// Actualiza los objetos
debug->clear();
// Comprueba los eventos de la cola
checkEventHandler();
// Actualiza los objetos
debug->clear();
scoreboard->update();
map->update();
enemyEngine->update();
player->update();
checkScreenBorders();
updateDebugInfo();
updateDebugInfo();
}
}
@@ -132,7 +132,7 @@ void Game::checkEventHandler()
break;
case SDL_SCANCODE_D:
debug->switchEnabled();
debug->switchEnabled();
musicEnabled = !debug->getEnabled();
musicEnabled ? JA_ResumeMusic() : JA_PauseMusic();
break;
@@ -151,22 +151,27 @@ void Game::checkEventHandler()
case SDL_SCANCODE_F:
screen->switchVideoMode();
reLoadTextures();
break;
case SDL_SCANCODE_F1:
screen->setWindowSize(1);
reLoadTextures();
break;
case SDL_SCANCODE_F2:
screen->setWindowSize(2);
reLoadTextures();
break;
case SDL_SCANCODE_F3:
screen->setWindowSize(3);
reLoadTextures();
break;
case SDL_SCANCODE_F4:
screen->setWindowSize(4);
reLoadTextures();
break;
default:
@@ -201,7 +206,7 @@ void Game::renderDebugInfo()
return;
}
// Pinta la rejilla
// Pinta la rejilla
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 16);
for (int i = 0; i < 240; i += 8)
{
@@ -257,4 +262,12 @@ void Game::checkScreenBorders()
player->switchBorders();
}
}
}
// Recarga las texturas
void Game::reLoadTextures()
{
map->reLoadTextures();
player->reLoadTextures();
scoreboard->reLoadTexture();
}