Transició a surface: game.cpp fet

This commit is contained in:
2025-03-03 19:15:24 +01:00
parent c9e75ad5c8
commit d7e0178602
18 changed files with 177 additions and 92 deletions

View File

@@ -25,7 +25,7 @@
Title::Title()
: surface_(Resource::get()->getSurface("title_logo.gif")),
sprite_(std::make_shared<SSprite>(surface_, 0, 0, surface_->getWidth(), surface_->getHeight())),
bg_surface_(std::make_shared<Surface>(Screen::get()->getRenderSurface(), options.game.width, options.game.height))
bg_surface_(std::make_shared<Surface>(Screen::get()->getRenderSurfaceData(), options.game.width, options.game.height))
{
// Carga la surface con los gráficos de la pantalla de carga
pInit(Screen::get()->getRenderer(), 256, 128);
@@ -251,7 +251,7 @@ void Title::render()
if (state_ == TitleState::SHOW_MENU)
{
// Dibuja la textura de fondo
SDL_RenderCopy(Screen::get()->getRenderer(), bg_surface_, nullptr, nullptr);
bg_surface_->render(0, 0);
// Dibuja la marquesina
renderMarquee();
@@ -311,7 +311,7 @@ void Title::moveCheevosList(int direction)
void Title::fillSurface()
{
// Coloca el puntero del renderizador sobre la textura
Screen::get()->setRenderSurface(bg_surface_);
Screen::get()->setRenderSurfaceData(bg_surface_);
// Rellena la textura de color
bg_surface_->setColor(255, 0xFF000000);
@@ -330,7 +330,7 @@ void Title::fillSurface()
text->writeDX(TEXT_CENTER | TEXT_COLOR, PLAY_AREA_CENTER_X, 20 * TEXT_SIZE, "ESC.EXIT GAME", 1, COLOR);
// Devuelve el puntero del renderizador a su sitio
Screen::get()->setRenderSurface(nullptr);
Screen::get()->setRenderSurfaceData(nullptr);
}
// Crea y rellena la textura para mostrar los logros
@@ -345,10 +345,10 @@ void Title::createCheevosTexture()
constexpr int CHEEVOS_PADDING = 10;
const int CHEEVO_HEIGHT = CHEEVOS_PADDING + (TEXT->getCharacterSize() * 2) + 1;
const int CHEEVOS_TEXTURE_HEIGHT = (CHEEVO_HEIGHT * CHEEVOS_LIST.size()) + 2 + TEXT->getCharacterSize() + 8;
cheevos_surface_ = std::make_shared<Surface>(Screen::get()->getRenderSurface(), CHEEVOS_TEXTURE_WIDTH, CHEEVOS_TEXTURE_HEIGHT);
cheevos_surface_ = std::make_shared<Surface>(Screen::get()->getRenderSurfaceData(), CHEEVOS_TEXTURE_WIDTH, CHEEVOS_TEXTURE_HEIGHT);
// Prepara para dibujar sobre la textura
Screen::get()->setRenderSurface(cheevos_surface_);
Screen::get()->setRenderSurfaceData(cheevos_surface_);
// Rellena la textura con color sólido
const Color CHEEVOS_BG_COLOR = stringToColor(options.video.palette, "black");
@@ -381,7 +381,7 @@ void Title::createCheevosTexture()
}
// Restablece el RenderSurface
Screen::get()->setRenderSurface(nullptr);
Screen::get()->setRenderSurfaceData(nullptr);
// Crea el sprite para el listado de logros
cheevos_sprite_ = std::make_shared<SSprite>(cheevos_surface_, (GAMECANVAS_WIDTH - cheevos_surface_->getWidth()) / 2, CHEEVOS_TEXTURE_POS_Y, cheevos_surface_->getWidth(), cheevos_surface_->getHeight());