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

View File

@@ -58,6 +58,9 @@ private:
// Comprueba si el jugador está en el borde y se ha de cambiar el mapa // Comprueba si el jugador está en el borde y se ha de cambiar el mapa
void checkScreenBorders(); void checkScreenBorders();
// Recarga las texturas
void reLoadTextures();
public: public:
// Constructor // Constructor
Game(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input, Debug *debug); Game(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input, Debug *debug);

View File

@@ -668,4 +668,11 @@ void Map::getItem(int index)
std::string Map::getEnemyFile() std::string Map::getEnemyFile()
{ {
return enemy_file; return enemy_file;
}
// Recarga las texturas
void Map::reLoadTextures()
{
texture_tile->reLoad();
fillMapTexture();
} }

View File

@@ -123,6 +123,9 @@ public:
// Obtiene el valor de la variable // Obtiene el valor de la variable
std::string getEnemyFile(); std::string getEnemyFile();
// Recarga las texturas
void reLoadTextures();
}; };
#endif #endif

View File

@@ -480,4 +480,10 @@ int Player::checkActors()
} }
return index; return index;
}
// Recarga las texturas
void Player::reLoadTextures()
{
texture->reLoad();
} }

View File

@@ -119,6 +119,9 @@ public:
// Pasa la referencia del mapa // Pasa la referencia del mapa
void setMap(Map *map); void setMap(Map *map);
// Recarga las texturas
void reLoadTextures();
}; };
#endif #endif