canvi de pc

This commit is contained in:
2025-07-14 22:27:36 +02:00
parent 5cb67b41d1
commit df53c39200
8 changed files with 56 additions and 21 deletions

View File

@@ -49,6 +49,46 @@ void Intro::checkEvents()
SDL_Event event;
while (SDL_PollEvent(&event))
{
if (event.type == SDL_EVENT_KEY_DOWN && event.key.repeat == 1)
{
static Color color = Color(128, 128, 128);
switch (event.key.key)
{
case SDLK_A:
++color.r;
if (color.r > 255)
color.r = 0;
break;
case SDLK_Z:
--color.r;
if (color.r < 0)
color.r =255;
break;
case SDLK_S:
++color.g;
break;
case SDLK_X:
--color.g;
break;
case SDLK_D:
++color.b;
break;
case SDLK_C:
--color.b;
break;
default:
break;
}
tiled_bg_->setColor(color);
std::cout << (int)color.r << "," << (int)color.g << "," << (int)color.b << std::endl;
}
GlobalEvents::check(event);
}
}
@@ -271,11 +311,8 @@ void Intro::render()
{
case IntroState::SCENES:
{
renderTextRect();
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;
}
@@ -538,18 +575,6 @@ void Intro::updatePostState()
{
tiled_bg_->stopGracefully();
/*
// Modifica el color del fondo hasta llegar a blanco
if (bg_color_.r <= 253 || bg_color_.g <= 253 || bg_color_.b <= 253) // Garantiza que no se exceda de 255 al incrementar de 2 en 2
{
bg_color_ = bg_color_.lighten(2);
}
else
{
bg_color_ = Color(255, 255, 255); // Asegura que bg_color_ no exceda el límite máximo
}
*/
if (bg_color_.isEqualTo(param.title.bg_color))
{
// Ya hemos llegado al color objetivo
@@ -563,7 +588,7 @@ void Intro::updatePostState()
}
// Cambia de estado si el fondo se ha detenido y recuperado el color
if (tiled_bg_->isStopped() && bg_color_.r == 255 && bg_color_.g == 255 && bg_color_.b == 255)
if (tiled_bg_->isStopped() && bg_color_.isEqualTo(param.title.bg_color))
{
post_state_ = IntroPostState::END;
state_start_time_ = SDL_GetTicks();
@@ -584,3 +609,11 @@ void Intro::updatePostState()
break;
}
}
void Intro::renderTextRect()
{
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);
}