fade-in implementado en la calse fade

repaso general a toda la clase fade
This commit is contained in:
2024-07-09 09:15:02 +02:00
parent 69ad8fbfff
commit 5511160836
5 changed files with 112 additions and 97 deletions

View File

@@ -4,7 +4,7 @@
// Constructor
HiScoreTable::HiScoreTable(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input, Lang *lang, param_t *param, options_t *options, section_t *section)
{
// Copia los punteros
// Copia punteros
this->renderer = renderer;
this->screen = screen;
this->asset = asset;
@@ -14,23 +14,27 @@ HiScoreTable::HiScoreTable(SDL_Renderer *renderer, Screen *screen, Asset *asset,
this->options = options;
this->param = param;
// Reserva memoria para los punteros
// Objetos
eventHandler = new SDL_Event();
// Fuente de texto para escribir
fade = new Fade(renderer, param);
background = new Background(renderer, screen, asset, param);
text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer);
// Crea un backbuffer para el renderizador
backbuffer = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, param->gameWidth, param->gameHeight);
SDL_SetTextureBlendMode(backbuffer, SDL_BLENDMODE_BLEND);
// Crea el objeto para dibujar el fondo
background = new Background(renderer, screen, asset, param);
// Inicializa objetos
background->setSrcDest(windowArea);
background->setDstDest(windowArea);
background->setCloudsSpeed(-0.5f);
background->setGradientNumber(1);
background->setTransition(0.8f);
fade->setColor(fadeColor.r, fadeColor.g, fadeColor.b);
fade->setType(FADE_RANDOM_SQUARE);
fade->setPost(param->fadePostDuration);
fade->setMode(FADE_IN);
fade->activate();
// Inicializa variables
section->name = SECTION_PROG_HI_SCORE_TABLE;
@@ -67,6 +71,8 @@ void HiScoreTable::update()
// Actualiza el fondo
background->update();
fade->update();
counter++;
if (counter == counterEnd)
@@ -134,6 +140,8 @@ void HiScoreTable::render()
// Copia el backbuffer al renderizador
SDL_RenderCopy(renderer, backbuffer, nullptr, &viewArea);
fade->render();
// Vuelca el contenido del renderizador en pantalla
screen->blit();
}