Fade acabado y no convence

This commit is contained in:
2022-09-15 22:41:19 +02:00
parent 8125e47d17
commit 06cb1e748d
3 changed files with 33 additions and 12 deletions

View File

@@ -112,7 +112,10 @@ void Game::checkEventHandler()
case SDL_SCANCODE_M: case SDL_SCANCODE_M:
board.music = !board.music; board.music = !board.music;
board.music ? JA_ResumeMusic() : JA_PauseMusic(); board.music ? JA_ResumeMusic() : JA_PauseMusic();
screen->setFade(); break;
case SDL_SCANCODE_T:
screen->setspectrumFade();
break; break;
case SDL_SCANCODE_P: case SDL_SCANCODE_P:
@@ -396,7 +399,7 @@ void Game::killPlayer()
// Sonido // Sonido
JA_PlaySound(deathSound); JA_PlaySound(deathSound);
blackScreen = true; setBlackScreen();
// Crea la nueva habitación y el nuevo jugador // Crea la nueva habitación y el nuevo jugador
room = new Room(asset->get(currentRoom), renderer, screen, asset, itemTracker, &board.items, debug); room = new Room(asset->get(currentRoom), renderer, screen, asset, itemTracker, &board.items, debug);
@@ -415,10 +418,19 @@ void Game::reLoadTextures()
text->reLoadTexture(); text->reLoadTexture();
} }
// Establece la pantalla en negro
void Game::setBlackScreen()
{
blackScreen = true;
screen->setspectrumFade();
}
// Actualiza las variables relativas a la pantalla en negro // Actualiza las variables relativas a la pantalla en negro
void Game::updateBlackScreen() void Game::updateBlackScreen()
{ {
if (blackScreen) if (blackScreen)
{
if (screen->spectrumFadeEnded())
{ {
blackScreenCounter++; blackScreenCounter++;
if (blackScreenCounter > 50) if (blackScreenCounter > 50)
@@ -428,7 +440,7 @@ void Game::updateBlackScreen()
player->resume(); player->resume();
room->resume(); room->resume();
}
} }
} }
} }

View File

@@ -92,6 +92,9 @@ private:
// Recarga todas las texturas // Recarga todas las texturas
void reLoadTextures(); void reLoadTextures();
// Establece la pantalla en negro
void setBlackScreen();
// Actualiza las variables relativas a la pantalla en negro // Actualiza las variables relativas a la pantalla en negro
void updateBlackScreen(); void updateBlackScreen();

View File

@@ -287,7 +287,9 @@ void Screen::iniSpectrumFade()
{ {
spectrumFade = false; spectrumFade = false;
spectrumFadeCounter = 0; spectrumFadeCounter = 0;
spectrumFadeLenght = 200; spectrumFadeLenght = 50;
spectrumColor.clear();
color_t c; color_t c;
c = stringToColor("black"); c = stringToColor("black");
@@ -327,6 +329,7 @@ void Screen::updateSpectrumFade()
if (spectrumFadeCounter > spectrumFadeLenght) if (spectrumFadeCounter > spectrumFadeLenght)
{ {
iniSpectrumFade(); iniSpectrumFade();
SDL_SetTextureColorMod(gameCanvas, 255, 255, 255);
} }
} }
@@ -339,7 +342,10 @@ void Screen::renderSpectrumFade()
} }
const float step = (float)spectrumFadeCounter / (float)spectrumFadeLenght; const float step = (float)spectrumFadeCounter / (float)spectrumFadeLenght;
SDL_SetTextureColorMod(gameCanvas, 255, 0, 0); const int max = spectrumColor.size() - 1;
const int index = max + (0 - max) * step;
const color_t c = spectrumColor[index];
SDL_SetTextureColorMod(gameCanvas, c.r, c.g, c.b);
} }
// Actualiza los efectos // Actualiza los efectos