From 90812f214089b511f42fb072939b273a16c95bef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20Valor=20Mart=C3=ADnez?= Date: Fri, 21 May 2021 21:08:43 +0200 Subject: [PATCH] Game end completed --- source/game.cpp | 30 ++++++++++++++++++++---------- source/game.h | 2 +- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/source/game.cpp b/source/game.cpp index 17f2d96..911f9ed 100644 --- a/source/game.cpp +++ b/source/game.cpp @@ -289,7 +289,7 @@ void Game::init() initGameStages(); // Modo debug - mDebug.enabled = true; + mDebug.enabled = false; mDebug.enemySet = 0; mDebug.gradR = mDebug.gradG = mDebug.gradB = 0; @@ -1348,7 +1348,7 @@ void Game::initGameStages() // STAGE 10 mStage[9].number = 10; - mStage[9].currentPower = 900; + mStage[9].currentPower = 940; mStage[9].powerToComplete = 950; mStage[9].minMenace = 7 + (4 * 9); mStage[9].maxMenace = 7 + (4 * 15); @@ -1644,14 +1644,16 @@ void Game::updateDeath() } // Renderiza el fade final cuando se acaba la partida -void Game::renderDeathFade(bool trigger, int counter) +void Game::renderDeathFade(int counter) +// Counter debe ir de 0 a 150 { - if ((trigger) && (counter < 150)) + SDL_SetRenderDrawColor(mRenderer, 0x27, 0x27, 0x36, 255); + + if (counter < 150) { // 192 / 6 = 32, 6 cuadrados de 32 pixeles SDL_Rect rect[12]; Uint8 h = counter / 3; - SDL_SetRenderDrawColor(mRenderer, 0x27, 0x27, 0x36, 255); for (int i = 0; i < 12; i++) { rect[i].x = 0; @@ -1664,6 +1666,11 @@ void Game::renderDeathFade(bool trigger, int counter) SDL_RenderFillRect(mRenderer, &rect[i]); } } + else + { + SDL_Rect rect = {0, 0, SCREEN_WIDTH, SCREEN_HEIGHT}; + SDL_RenderFillRect(mRenderer, &rect); + } } // Actualiza los globos @@ -2517,12 +2524,15 @@ void Game::renderPlayField() renderBackground(); renderBalloons(); renderBullets(); + renderMessages(); renderItems(); renderSmartSprites(); - mPlayer->render(); - renderMessages(); - renderDeathFade(!mPlayer->isAlive(), 150 - mDeathCounter); renderScoreBoard(); + mPlayer->render(); + if ((mDeathCounter <= 150) && !mPlayer->isAlive()) + renderDeathFade(150 - mDeathCounter); + if ((mGameCompleted) && (mGameCompletedCounter >= 300)) + renderDeathFade(mGameCompletedCounter - 300); renderFlashEffect(); } @@ -3182,6 +3192,6 @@ void Game::updateGameCompleted() if (mGameCompleted) mGameCompletedCounter++; - if (mGameCompletedCounter >= 300) - renderDeathFade(mGameCompleted, 300 - mGameCompletedCounter); + if (mGameCompletedCounter == 500) + mSection.subsection = GAME_SECTION_GAMEOVER; } \ No newline at end of file diff --git a/source/game.h b/source/game.h index 671c25b..eb2da84 100644 --- a/source/game.h +++ b/source/game.h @@ -250,7 +250,7 @@ public: void updateDeath(); // Renderiza el fade final cuando se acaba la partida - void renderDeathFade(bool trigger, int counter); + void renderDeathFade(int counter); // Actualiza los globos void updateBalloons();