Acabat el nou motor per a textos en pantalla
This commit is contained in:
@@ -141,7 +141,7 @@ void Screen::blit()
|
||||
|
||||
// Copia la textura de juego en el renderizador en la posición adecuada
|
||||
if (shake_effect_.enabled)
|
||||
SDL_RenderCopy(renderer_, game_canvas_, nullptr, nullptr);
|
||||
SDL_RenderCopy(renderer_, game_canvas_, nullptr, nullptr); // Esta copia es para evitar que se vea negro por los laterales
|
||||
SDL_RenderCopy(renderer_, game_canvas_, &src_rect_, &dst_rect_);
|
||||
|
||||
// Muestra por pantalla el renderizador
|
||||
@@ -375,10 +375,7 @@ void Screen::updateShakeEffect()
|
||||
// Pone la pantalla de color
|
||||
void Screen::flash(Color color, int lenght)
|
||||
{
|
||||
flash_effect_.enabled = true;
|
||||
flash_effect_.counter = 0;
|
||||
flash_effect_.lenght = lenght;
|
||||
flash_effect_.color = color;
|
||||
flash_effect_ = FlashEffect(true, lenght, color);
|
||||
}
|
||||
|
||||
// Actualiza y dibuja el efecto de flash en la pantalla
|
||||
@@ -387,14 +384,14 @@ void Screen::doFlash()
|
||||
if (flash_effect_.enabled)
|
||||
{
|
||||
// Dibuja el color del flash en la textura
|
||||
SDL_Texture *temp = SDL_GetRenderTarget(renderer_);
|
||||
SDL_SetRenderTarget(renderer_, game_canvas_);
|
||||
//auto temp = SDL_GetRenderTarget(renderer_);
|
||||
//SDL_SetRenderTarget(renderer_, game_canvas_);
|
||||
SDL_SetRenderDrawColor(renderer_, flash_effect_.color.r, flash_effect_.color.g, flash_effect_.color.b, 0xFF);
|
||||
SDL_RenderClear(renderer_);
|
||||
SDL_SetRenderTarget(renderer_, temp);
|
||||
//SDL_SetRenderTarget(renderer_, temp);
|
||||
|
||||
// Actualiza la lógica del efecto
|
||||
flash_effect_.counter < flash_effect_.lenght ? flash_effect_.counter++ : flash_effect_.enabled = false;
|
||||
flash_effect_.counter > 0 ? flash_effect_.counter-- : flash_effect_.enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -403,11 +400,11 @@ void Screen::doAttenuate()
|
||||
{
|
||||
if (attenuate_effect_)
|
||||
{
|
||||
SDL_Texture *temp = SDL_GetRenderTarget(renderer_);
|
||||
SDL_SetRenderTarget(renderer_, game_canvas_);
|
||||
//auto temp = SDL_GetRenderTarget(renderer_);
|
||||
//SDL_SetRenderTarget(renderer_, game_canvas_);
|
||||
SDL_SetRenderDrawColor(renderer_, 0, 0, 0, 64);
|
||||
SDL_RenderFillRect(renderer_, nullptr);
|
||||
SDL_SetRenderTarget(renderer_, temp);
|
||||
//SDL_SetRenderTarget(renderer_, temp);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user