diff --git a/data/config/param_320x240.txt b/data/config/param_320x240.txt index 645dd6a..5bbe1d0 100644 --- a/data/config/param_320x240.txt +++ b/data/config/param_320x240.txt @@ -40,6 +40,7 @@ title.press_start_position 170 # Posición Y del texto "Press Start" title.title_duration 800 # Duración de la pantalla de título (frames) title.arcade_edition_position 123 # Posición Y del subtítulo "Arcade Edition" title.title_c_c_position 80 # Posición Y del título principal +title.bg_color 808080 # Color de fondo en la sección titulo ## --- BACKGROUND --- background.attenuate_color FFFFFF00 # Color de atenuación del fondo (RGBA hexadecimal) @@ -75,8 +76,10 @@ service_menu.bg_color 003000F5 # Color de fondo del menú de servicio ( service_menu.drop_shadow false # ¿El menú de servicio tiene sombra? ## --- INTRO --- -intro.bg_color 543149 # Color de fondo de la intro -intro.card_color CBDBFC # Color de las tarjetas en la intro +intro.bg_color 00FFFF # Color de fondo de la intro +intro.card_color CBDBFC # Color de las tarjetas en la intro +intro.shadow_color 00000080 # Color de la sombra de las tarjetas en la intro +intro.text_distance_from_bottom 48 # Posicion del texto ## --- DEBUG --- debug.color 00FFFF # Color para elementos de depuración diff --git a/data/config/param_320x256.txt b/data/config/param_320x256.txt index cbf193e..a841c74 100644 --- a/data/config/param_320x256.txt +++ b/data/config/param_320x256.txt @@ -40,7 +40,7 @@ title.press_start_position 180 # Posición Y del texto "Press Start" title.title_duration 800 # Duración de la pantalla de título (frames) title.arcade_edition_position 123 # Posición Y del subtítulo "Arcade Edition" title.title_c_c_position 80 # Posición Y del título principal -title.bg_color FF0000 # Color de fondo en la sección titulo +title.bg_color 808080 # Color de fondo en la sección titulo ## --- BACKGROUND --- background.attenuate_color FFFFFF00 # Color de atenuación del fondo (RGBA hexadecimal) @@ -76,10 +76,10 @@ service_menu.bg_color 000F00F5 # Color de fondo del menú de servicio ( service_menu.drop_shadow false # ¿El menú de servicio tiene sombra? ## --- INTRO --- -intro.bg_color 543149 # Color de fondo de la intro -intro.bg_color 00FFFF # Color de fondo de la intro -intro.card_color CBDBFC # Color de las tarjetas en la intro -intro.shadow_color 00000080 # Color de la sombra de las tarjetas en la intro +intro.bg_color 00FFFF # Color de fondo de la intro +intro.card_color CBDBFC # Color de las tarjetas en la intro +intro.shadow_color 00000080 # Color de la sombra de las tarjetas en la intro +intro.text_distance_from_bottom 48 # Posicion del texto ## --- DEBUG --- debug.color 00FFFF # Color para elementos de depuración diff --git a/source/param.cpp b/source/param.cpp index 05f6767..89f3621 100644 --- a/source/param.cpp +++ b/source/param.cpp @@ -83,6 +83,7 @@ void initParam() param.intro.bg_color = Color::fromHex("543149"); param.intro.card_color = Color::fromHex("CBDBFC"); param.intro.shadow_color = Color::fromHex("00000080"); + param.intro.text_distance_from_bottom = 48; } // Carga los parámetros desde un archivo @@ -465,6 +466,11 @@ bool setParams(const std::string &var, const std::string &value) param.intro.shadow_color = Color::fromHex(value); } + else if (var == "intro.text_distance_from_bottom") + { + param.intro.text_distance_from_bottom = std::stoi(value); + } + // DEBUG else if (var == "debug.color") { diff --git a/source/param.h b/source/param.h index 39c3336..d9b8eda 100644 --- a/source/param.h +++ b/source/param.h @@ -107,6 +107,7 @@ struct ParamIntro Color bg_color; Color card_color; Color shadow_color; + int text_distance_from_bottom; }; // --- Parámetros para Debug --- diff --git a/source/sections/intro.cpp b/source/sections/intro.cpp index a16a753..2bf286e 100644 --- a/source/sections/intro.cpp +++ b/source/sections/intro.cpp @@ -272,6 +272,10 @@ void Intro::render() case IntroState::SCENES: { renderSprites(); + static const float HEIGHT = Resource::get()->getText("04b_25_metal")->getCharacterSize(); + static SDL_FRect rect = {0.0f, param.game.height - param.intro.text_distance_from_bottom - HEIGHT, param.game.width, HEIGHT * 3}; + SDL_SetRenderDrawColor(Screen::get()->getRenderer(), param.intro.shadow_color.r, param.intro.shadow_color.g, param.intro.shadow_color.b, param.intro.shadow_color.a); + SDL_RenderFillRect(Screen::get()->getRenderer(), &rect); renderTexts(); break; } @@ -432,8 +436,8 @@ void Intro::initTexts() for (int i = 0; i < TOTAL_TEXTS; ++i) { auto w = std::make_unique(Resource::get()->getText("04b_25_metal")); - w->setPosX(BLOCK * 0); - w->setPosY(param.game.height - (BLOCK * 6)); + w->setPosX(0); + w->setPosY(param.game.height - param.intro.text_distance_from_bottom); w->setKerning(-2); w->setEnabled(false); w->setFinishedCounter(180); diff --git a/source/sections/intro.h b/source/sections/intro.h index d44cd16..f9aaf63 100644 --- a/source/sections/intro.h +++ b/source/sections/intro.h @@ -45,6 +45,7 @@ private: std::vector> shadow_sprites_; // Vector con los sprites inteligentes para las sombras std::vector> texts_; // Textos de la intro std::unique_ptr tiled_bg_; // Fondo en mosaico + //std::unique_ptr shadow_square_for_text_; // Sprite // --- Variables --- Uint64 ticks_ = 0; // Contador de ticks para ajustar la velocidad del programa