Fade: el color passa a estar en param.h

This commit is contained in:
2025-06-26 14:04:01 +02:00
parent 7c473d7a3d
commit 13c4f66228
12 changed files with 60 additions and 43 deletions

View File

@@ -1,4 +1,4 @@
## GAME
## --- GAME ---
game.item_size 20 # Tamaño de los items del juego
game.coffee_machine_w 28 # Ancho de la máquina de café
game.coffee_machine_h 37 # Alto de la máquina de café
@@ -10,7 +10,8 @@ game.play_area.rect.w 320 # Rectangulo con la posición de la zona de juego
game.play_area.rect.h 200 # Rectangulo con la posición de la zona de juego
game.enter_name_seconds 60 # Duración en segundos para introducir el nombre al finalizar la partida
## FADE
## --- FADE ---
fade.color 000000
fade.num_squares_width 160
fade.num_squares_height 120
fade.random_squares_delay 1
@@ -18,23 +19,23 @@ fade.random_squares_mult 500
fade.post_duration 80
fade.venetian_size 12
## SCOREBOARD
scoreboard.x 0
scoreboard.y 200
scoreboard.w 320
scoreboard.h 40
## --- SCOREBOARD ---
scoreboard.rect.x 0
scoreboard.rect.y 200
scoreboard.rect.w 320
scoreboard.rect.h 40
## TITLE
## --- TITLE ---
title.press_start_position 170
title.title_duration 800
title.arcade_edition_position 123
title.title_c_c_position 80
## BACKGROUND
## --- BACKGROUND ---
background.attenuate_color FFFFFF
background.attenuate_alpha 0
## BALLOONS
## --- BALLOONS ---
balloon_1.vel 2.75f
balloon_1.grav 0.09f
balloon_2.vel 3.70f
@@ -44,7 +45,7 @@ balloon_3.grav 0.10f
balloon_4.vel 5.45f
balloon_4.grav 0.10f
## NOTIFICATION
## --- NOTIFICATION ---
notification.pos_v TOP
notification.pos_h LEFT
notification.sound false

View File

@@ -11,6 +11,7 @@ game.play_area.rect.h 216 # Rectangulo con la posición de la zona de juego
game.enter_name_seconds 60 # Duración en segundos para introducir el nombre al finalizar la partida
## --- FADE ---
fade.color 000000
fade.num_squares_width 160
fade.num_squares_height 128
fade.random_squares_delay 1

View File

@@ -47,7 +47,7 @@ Credits::Credits()
Section::name = Section::Name::CREDITS;
balloon_manager_->setPlayArea(play_area_);
fade_in_->setColor(FADE_COLOR.r, FADE_COLOR.g, FADE_COLOR.b);
fade_in_->setColor(param.fade.color);
fade_in_->setType(FadeType::FULLSCREEN);
fade_in_->setPostDuration(50);
fade_in_->setMode(FadeMode::IN);

View File

@@ -332,6 +332,14 @@ void Fade::setColor(Uint8 r, Uint8 g, Uint8 b)
b_ = b;
}
// Establece el color del fade
void Fade::setColor(Color color)
{
r_ = color.r;
g_ = color.g;
b_ = color.b;
}
// Limpia el backbuffer
void Fade::cleanBackbuffer(Uint8 r, Uint8 g, Uint8 b, Uint8 a)
{

View File

@@ -4,6 +4,7 @@
#include <SDL3/SDL_render.h>
#include <SDL3/SDL_stdinc.h>
#include <vector>
#include "utils.h"
// Tipos de fundido
enum class FadeType : Uint8
@@ -46,6 +47,7 @@ public:
// --- Configuración ---
void setColor(Uint8 r, Uint8 g, Uint8 b);
void setColor(Color color);
void setType(FadeType type) { type_ = type; }
void setMode(FadeMode mode) { mode_ = mode; }
void setPostDuration(int value) { post_duration_ = value; }

View File

@@ -64,14 +64,14 @@ Game::Game(int player_id, int current_stage, bool demo)
Scoreboard::init();
scoreboard_ = Scoreboard::get();
fade_in_->setColor(FADE_COLOR.r, FADE_COLOR.g, FADE_COLOR.b);
fade_in_->setColor(param.fade.color);
fade_in_->setPreDuration(demo_.enabled ? 80 : 0);
fade_in_->setPostDuration(0);
fade_in_->setType(FadeType::RANDOM_SQUARE);
fade_in_->setMode(FadeMode::IN);
fade_in_->activate();
fade_out_->setColor(FADE_COLOR.r, FADE_COLOR.g, FADE_COLOR.b);
fade_out_->setColor(param.fade.color);
fade_out_->setPostDuration(param.fade.post_duration);
fade_out_->setType(FadeType::VENETIAN);

View File

@@ -318,7 +318,7 @@ void HiScoreTable::updateSprites()
// Inicializa el fade
void HiScoreTable::initFade()
{
fade_->setColor(FADE_COLOR.r, FADE_COLOR.g, FADE_COLOR.b);
fade_->setColor(param.fade.color);
fade_->setType(FadeType::RANDOM_SQUARE);
fade_->setPostDuration(param.fade.post_duration);
fade_->setMode(fade_mode_);

View File

@@ -39,7 +39,7 @@ Instructions::Instructions()
view_ = param.game.game_area.rect;
// Inicializa objetos
fade_->setColor(FADE_COLOR.r, FADE_COLOR.g, FADE_COLOR.b);
fade_->setColor(param.fade.color);
fade_->setType(FadeType::FULLSCREEN);
fade_->setPostDuration(param.fade.post_duration);
fade_->setMode(FadeMode::IN);

View File

@@ -167,6 +167,11 @@ bool setParams(const std::string &var, const std::string &value)
}
// FADE
else if (var == "fade.color")
{
param.fade.color = Color::fromHex(value);
}
else if (var == "fade.num_squares_width")
{
param.fade.num_squares_width = std::stoi(value);

View File

@@ -23,6 +23,7 @@ struct ParamGame
// --- Parámetros del fade ---
struct ParamFade
{
Color color; // Color del fade
float num_squares_width; // Cantidad total de cuadraditos en horizontal para el FadeType::RANDOM_SQUARE
float num_squares_height; // Cantidad total de cuadraditos en vertical para el FadeType::RANDOM_SQUARE
int random_squares_delay; // Duración entre cada pintado de cuadrados

View File

@@ -40,7 +40,7 @@ Title::Title()
// Configura objetos
game_logo_->enable();
mini_logo_sprite_->setX(param.game.game_area.center_x - mini_logo_sprite_->getWidth() / 2);
fade_->setColor(FADE_COLOR.r, FADE_COLOR.g, FADE_COLOR.b);
fade_->setColor(param.fade.color);
fade_->setType(FadeType::RANDOM_SQUARE);
fade_->setPostDuration(param.fade.post_duration);
Resource::get()->getTexture("smb2.gif")->setPalette(1);

View File

@@ -179,7 +179,6 @@ constexpr Color SCOREBOARD_EASY_COLOR = Color(0X4B, 0X69, 0X2F);
constexpr Color SCOREBOARD_NORMAL_COLOR = Color(0X2E, 0X3F, 0X47);
constexpr Color SCOREBOARD_HARD_COLOR = Color(0X76, 0X42, 0X8A);
constexpr Color FLASH_COLOR = Color(0XFF, 0XFF, 0XFF);
constexpr Color FADE_COLOR = Color(0X27, 0X27, 0X36);
constexpr Color ORANGE_COLOR = Color(0XFF, 0X7A, 0X00);
constexpr Color ORANGE_SOFT_COLOR = Color(0XFF, 0XA0, 0X33);
constexpr Color ORANGE_SHADOW_COLOR = ORANGE_SOFT_COLOR.darken(100);