Optimizado TITLE, aun queda por hacer

This commit is contained in:
2022-09-29 17:49:43 +02:00
parent fd90a3c66c
commit 0063a2ede5

View File

@@ -234,7 +234,8 @@ void Title::update()
{ {
// Sección 1 - Titulo desplazandose // Sección 1 - Titulo desplazandose
case TITLE_SECTION_1: case TITLE_SECTION_1:
{ // Actualiza los objetos {
// Actualiza los objetos
mCoffeeBitmap->update(); mCoffeeBitmap->update();
mCrisisBitmap->update(); mCrisisBitmap->update();
@@ -247,6 +248,9 @@ void Title::update()
SDL_SetRenderDrawColor(mRenderer, 0xFF, 0xFF, 0xFF, 0xFF); SDL_SetRenderDrawColor(mRenderer, 0xFF, 0xFF, 0xFF, 0xFF);
SDL_RenderClear(mRenderer); SDL_RenderClear(mRenderer);
SDL_RenderPresent(mRenderer); SDL_RenderPresent(mRenderer);
// Reproduce el efecto sonoro
JA_PlaySound(mSound);
} }
} }
break; break;
@@ -254,6 +258,23 @@ void Title::update()
// Sección 2 - Titulo vibrando // Sección 2 - Titulo vibrando
case TITLE_SECTION_2: case TITLE_SECTION_2:
{ {
// Agita la pantalla
static const int v[] = {-1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, 0};
static const int a = mCoffeeBitmap->getPosX();
static const int b = mCrisisBitmap->getPosX();
static int step = 0;
mCoffeeBitmap->setPosX(a + v[step / 3]);
mCrisisBitmap->setPosX(b + v[step / 3]);
mDustBitmapR->update();
mDustBitmapL->update();
step++;
if (step == 33)
{
mSection.subsection = TITLE_SECTION_3;
}
} }
break; break;
@@ -454,13 +475,24 @@ void Title::render()
// Sección 1 - Titulo desplazandose // Sección 1 - Titulo desplazandose
case TITLE_SECTION_1: case TITLE_SECTION_1:
{ {
mScreen->start(); // Prepara para empezar a dibujar en la textura de juego // Prepara para empezar a dibujar en la textura de juego
mScreen->clean(bgColor); // Limpia la pantalla mScreen->start();
SDL_RenderCopy(mRenderer, mBackground, &mBackgroundWindow, nullptr); // Dibuja el tileado de fondo
mGradient->render(); // Dibuja el degradado // Limpia la pantalla
mCoffeeBitmap->render(); // Dibuja los objetos mScreen->clean(bgColor);
mCrisisBitmap->render(); // Dibuja los objetos
mScreen->blit(); // Vuelca el contenido del renderizador en pantalla // Dibuja el tileado de fondo
SDL_RenderCopy(mRenderer, mBackground, &mBackgroundWindow, nullptr);
// Dibuja el degradado
mGradient->render();
// Dibuja los objetos
mCoffeeBitmap->render();
mCrisisBitmap->render();
// Vuelca el contenido del renderizador en pantalla
mScreen->blit();
} }
break; break;
@@ -474,35 +506,27 @@ void Title::render()
const int a = mCoffeeBitmap->getPosX(); const int a = mCoffeeBitmap->getPosX();
const int b = mCrisisBitmap->getPosX(); const int b = mCrisisBitmap->getPosX();
for (int n = 0; n < 11 * 3; ++n) for (int n = 0; n < 11 * 3; ++n)
{ {
// Prepara para empezar a dibujar en la textura de juego // Prepara para empezar a dibujar en la textura de juego
mScreen->start(); mScreen->start();
// Limpia la pantalla // Limpia la pantalla
mScreen->clean(bgColor); mScreen->clean(bgColor);
// Dibuja el tileado de fondo // Dibuja el tileado de fondo
SDL_RenderCopy(mRenderer, mBackground, &mBackgroundWindow, nullptr); SDL_RenderCopy(mRenderer, mBackground, &mBackgroundWindow, nullptr);
// Dibuja el degradado // Dibuja el degradado
mGradient->render(); mGradient->render();
// Dibuja los objetos // Dibuja los objetos
mCoffeeBitmap->setPosX(a + v[n / 3]); mCoffeeBitmap->render();
mCrisisBitmap->setPosX(b + v[n / 3]); mCrisisBitmap->render();
mCoffeeBitmap->render(); mDustBitmapR->render();
mCrisisBitmap->render(); mDustBitmapL->render();
mDustBitmapR->update(); // Vuelca el contenido del renderizador en pantalla
mDustBitmapL->update(); mScreen->blit();
mDustBitmapR->render();
mDustBitmapL->render();
// Vuelca el contenido del renderizador en pantalla
mScreen->blit();
}
mSection.subsection = TITLE_SECTION_3;
} }
break; break;