From 0063a2ede573bb49d34ca06160d192e3e9809088 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20Valor=20Mart=C3=ADnez?= Date: Thu, 29 Sep 2022 17:49:43 +0200 Subject: [PATCH] Optimizado TITLE, aun queda por hacer --- source/title.cpp | 88 ++++++++++++++++++++++++++++++------------------ 1 file changed, 56 insertions(+), 32 deletions(-) diff --git a/source/title.cpp b/source/title.cpp index 1153d32..905a207 100644 --- a/source/title.cpp +++ b/source/title.cpp @@ -234,7 +234,8 @@ void Title::update() { // Sección 1 - Titulo desplazandose case TITLE_SECTION_1: - { // Actualiza los objetos + { + // Actualiza los objetos mCoffeeBitmap->update(); mCrisisBitmap->update(); @@ -247,6 +248,9 @@ void Title::update() SDL_SetRenderDrawColor(mRenderer, 0xFF, 0xFF, 0xFF, 0xFF); SDL_RenderClear(mRenderer); SDL_RenderPresent(mRenderer); + + // Reproduce el efecto sonoro + JA_PlaySound(mSound); } } break; @@ -254,6 +258,23 @@ void Title::update() // Sección 2 - Titulo vibrando 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; @@ -454,13 +475,24 @@ void Title::render() // Sección 1 - Titulo desplazandose case TITLE_SECTION_1: { - mScreen->start(); // Prepara para empezar a dibujar en la textura de juego - mScreen->clean(bgColor); // Limpia la pantalla - SDL_RenderCopy(mRenderer, mBackground, &mBackgroundWindow, nullptr); // Dibuja el tileado de fondo - mGradient->render(); // Dibuja el degradado - mCoffeeBitmap->render(); // Dibuja los objetos - mCrisisBitmap->render(); // Dibuja los objetos - mScreen->blit(); // Vuelca el contenido del renderizador en pantalla + // Prepara para empezar a dibujar en la textura de juego + mScreen->start(); + + // Limpia la pantalla + mScreen->clean(bgColor); + + // 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; @@ -474,35 +506,27 @@ void Title::render() const int a = mCoffeeBitmap->getPosX(); const int b = mCrisisBitmap->getPosX(); for (int n = 0; n < 11 * 3; ++n) - { - // Prepara para empezar a dibujar en la textura de juego - mScreen->start(); + { + // Prepara para empezar a dibujar en la textura de juego + mScreen->start(); - // Limpia la pantalla - mScreen->clean(bgColor); + // Limpia la pantalla + mScreen->clean(bgColor); - // Dibuja el tileado de fondo - SDL_RenderCopy(mRenderer, mBackground, &mBackgroundWindow, nullptr); + // Dibuja el tileado de fondo + SDL_RenderCopy(mRenderer, mBackground, &mBackgroundWindow, nullptr); - // Dibuja el degradado - mGradient->render(); + // Dibuja el degradado + mGradient->render(); - // Dibuja los objetos - mCoffeeBitmap->setPosX(a + v[n / 3]); - mCrisisBitmap->setPosX(b + v[n / 3]); - mCoffeeBitmap->render(); - mCrisisBitmap->render(); + // Dibuja los objetos + mCoffeeBitmap->render(); + mCrisisBitmap->render(); + mDustBitmapR->render(); + mDustBitmapL->render(); - mDustBitmapR->update(); - mDustBitmapL->update(); - mDustBitmapR->render(); - mDustBitmapL->render(); - - // Vuelca el contenido del renderizador en pantalla - mScreen->blit(); - } - - mSection.subsection = TITLE_SECTION_3; + // Vuelca el contenido del renderizador en pantalla + mScreen->blit(); } break;