canvi de pc
This commit is contained in:
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user