Treballant en el segon logo

This commit is contained in:
2025-02-07 14:55:34 +01:00
parent 84595da13a
commit 04ff428aa0
2 changed files with 72 additions and 24 deletions

View File

@@ -19,8 +19,7 @@
Logo::Logo() Logo::Logo()
: since_texture_(Resource::get()->getTexture("logo_since_1998.png")), : since_texture_(Resource::get()->getTexture("logo_since_1998.png")),
since_sprite_(std::make_unique<Sprite>(since_texture_)), since_sprite_(std::make_unique<Sprite>(since_texture_)),
jail_texture_(Resource::get()->getTexture("logo_jailgames.png")), jail_texture_(Resource::get()->getTexture("logo_jailgames.png"))
ticks_(0)
{ {
// Inicializa variables // Inicializa variables
@@ -114,7 +113,7 @@ void Logo::checkInput()
globalInputs::check(); globalInputs::check();
} }
// Gestiona el logo de JAILGAME // Gestiona el logo de JAILGAMES
void Logo::updateJAILGAMES() void Logo::updateJAILGAMES()
{ {
if (counter_ == 30) if (counter_ == 30)
@@ -149,6 +148,11 @@ void Logo::updateJAILGAMES()
} }
} }
// Gestiona el logo de RETROWEEKEND
void Logo::updateRETROWEEKEND()
{
}
// Gestiona el color de las texturas // Gestiona el color de las texturas
void Logo::updateTextureColors() void Logo::updateTextureColors()
{ {
@@ -190,11 +194,20 @@ void Logo::update()
// Comprueba las entradas // Comprueba las entradas
checkInput(); checkInput();
// Gestiona el logo de JAILGAME switch (state_)
updateJAILGAMES(); {
case LogoState::JAILGAMES:
updateJAILGAMES();
updateTextureColors();
break;
// Gestiona el color de las texturas case LogoState::RETROWEEKEND:
updateTextureColors(); updateRETROWEEKEND();
break;
default:
break;
}
// Gestiona el contador y sus eventos // Gestiona el contador y sus eventos
counter_++; counter_++;
@@ -213,24 +226,23 @@ void Logo::update()
// Dibuja en pantalla // Dibuja en pantalla
void Logo::render() void Logo::render()
{ {
// Prepara para empezar a dibujar en la textura de juego
Screen::get()->start(); Screen::get()->start();
// Limpia la pantalla
Screen::get()->clean(); Screen::get()->clean();
// Dibuja los sprites switch (state_)
for (auto &sprite : jail_sprite_)
{ {
sprite->render(); case LogoState::JAILGAMES:
renderJAILGAMES();
break;
case LogoState::RETROWEEKEND:
renderRETROWEEKEND();
break;
default:
break;
} }
if (counter_ >= SHOW_SINCE_SPRITE_COUNTER_MARK)
{
since_sprite_->render();
}
// Vuelca el contenido del renderizador en pantalla
Screen::get()->render(); Screen::get()->render();
} }
@@ -247,4 +259,24 @@ void Logo::run()
checkEvents(); // Tiene que ir antes del render checkEvents(); // Tiene que ir antes del render
render(); render();
} }
}
// Renderiza el logo de JAILGAMES
void Logo::renderJAILGAMES()
{
// Dibuja los sprites
for (auto &sprite : jail_sprite_)
{
sprite->render();
}
if (counter_ >= SHOW_SINCE_SPRITE_COUNTER_MARK)
{
since_sprite_->render();
}
}
// Renderiza el logo de RETROWEEKEND
void Logo::renderRETROWEEKEND()
{
} }

View File

@@ -20,6 +20,12 @@ struct Color;
class Logo class Logo
{ {
private: private:
enum class LogoState
{
JAILGAMES,
RETROWEEKEND,
};
// Constantes // Constantes
static constexpr int SHOW_SINCE_SPRITE_COUNTER_MARK = 70; // Tiempo del contador en el que empieza a verse el sprite de "SINCE 1998" static constexpr int SHOW_SINCE_SPRITE_COUNTER_MARK = 70; // Tiempo del contador en el que empieza a verse el sprite de "SINCE 1998"
static constexpr int INIT_FADE_COUNTER_MARK = 300; // Tiempo del contador cuando inicia el fade a negro static constexpr int INIT_FADE_COUNTER_MARK = 300; // Tiempo del contador cuando inicia el fade a negro
@@ -34,10 +40,11 @@ private:
std::vector<std::unique_ptr<Sprite>> jail_sprite_; // Vector con los sprites de cada linea que forman el bitmap JAILGAMES std::vector<std::unique_ptr<Sprite>> jail_sprite_; // Vector con los sprites de cada linea que forman el bitmap JAILGAMES
// Variables // Variables
std::vector<Color> color_; // Vector con los colores para el fade std::vector<Color> color_; // Vector con los colores para el fade
int counter_; // Contador int counter_; // Contador
Uint32 ticks_; // Contador de ticks para ajustar la velocidad del programa Uint32 ticks_ = 0; // Contador de ticks para ajustar la velocidad del programa
SDL_Point dest_; // Posición X donde dibujar el logo SDL_Point dest_; // Posición X donde dibujar el logo
LogoState state_ = LogoState::JAILGAMES; // El estado indica qué logo se está procesando
// Actualiza las variables // Actualiza las variables
void update(); void update();
@@ -51,9 +58,18 @@ private:
// Comprueba las entradas // Comprueba las entradas
void checkInput(); void checkInput();
// Gestiona el logo de JAILGAME // Gestiona el logo de JAILGAMES
void updateJAILGAMES(); void updateJAILGAMES();
// Gestiona el logo de RETROWEEKEND
void updateRETROWEEKEND();
// Renderiza el logo de JAILGAMES
void renderJAILGAMES();
// Renderiza el logo de RETROWEEKEND
void renderRETROWEEKEND();
// Gestiona el color de las texturas // Gestiona el color de las texturas
void updateTextureColors(); void updateTextureColors();