diff --git a/data/gfx/menu_game_over.png b/data/gfx/menu_game_over.png new file mode 100644 index 0000000..a69fb6f Binary files /dev/null and b/data/gfx/menu_game_over.png differ diff --git a/data/menu/gameover.men b/data/menu/gameover.men index ed8b364..0f07dc5 100644 --- a/data/menu/gameover.men +++ b/data/menu/gameover.men @@ -7,13 +7,13 @@ sound_move=menu_move.wav name=GAME OVER x=0 -y=112 +y=96 backgroundType=0 backgroundColor=0,0,0,255 areElementsCenteredOnX=true isCenteredOnX=true -centerX=128 +centerX=199 selector_color=84,110,122,0 selector_text_color=255,122,0 diff --git a/source/director.cpp b/source/director.cpp index 487478b..e0a82a9 100644 --- a/source/director.cpp +++ b/source/director.cpp @@ -215,6 +215,7 @@ bool Director::setFileList() asset->add("data/gfx/intro.png", t_bitmap); asset->add("data/gfx/logo.png", t_bitmap); + asset->add("data/gfx/menu_game_over.png", t_bitmap); asset->add("data/gfx/item_points1_disk.png", t_bitmap); asset->add("data/gfx/item_points1_disk.ani", t_data); diff --git a/source/game.cpp b/source/game.cpp index f188c6e..8c8c9b5 100644 --- a/source/game.cpp +++ b/source/game.cpp @@ -44,6 +44,7 @@ Game::Game(int numPlayers, int currentStage, SDL_Renderer *renderer, Screen *scr skyColorsSprite = new Sprite(0, 0, GAME_WIDTH, GAME_HEIGHT, gameSkyColorsTexture, renderer); grassSprite = new Sprite(0, 0, 256, 6, gameGrassTexture, renderer); powerMeterSprite = new Sprite(PLAY_AREA_CENTER_X - 20, 170, 40, 7, gamePowerMeterTexture, renderer); + gameOverSprite = new Sprite(16, 80, 128, 96, gameOverTexture, renderer); // Inicializa las variables necesarias para la sección 'Game' init(); @@ -84,6 +85,9 @@ Game::~Game() gameTextTexture->unload(); delete gameTextTexture; + gameOverTexture->unload(); + delete gameOverTexture; + // Animaciones for (auto animation : playerAnimations) { @@ -369,6 +373,7 @@ void Game::loadMedia() gamePowerMeterTexture = new LTexture(renderer, asset->get("game_power_meter.png")); gameSkyColorsTexture = new LTexture(renderer, asset->get("game_sky_colors.png")); gameTextTexture = new LTexture(renderer, asset->get("game_text.png")); + gameOverTexture = new LTexture(renderer, asset->get("menu_game_over.png")); // Texturas - Globos LTexture *balloon1Texture = new LTexture(renderer, asset->get("balloon1.png")); @@ -3355,11 +3360,17 @@ void Game::runGameOverScreen() // Limpia la pantalla screen->clean(bgColor); + // Dibujo + gameOverSprite->render(); + // Dibuja los objetos if (numPlayers == 1) { - textBig->writeCentered(PLAY_AREA_CENTER_X, PLAY_AREA_CENTER_Y - (BLOCK * 4), lang->getText(43)); - text->writeCentered(PLAY_AREA_CENTER_X, PLAY_AREA_CENTER_Y - (BLOCK * 1), lang->getText(44) + std::to_string(players.at(0)->getScore())); + // Game Over + textBig->writeCentered(PLAY_AREA_CENTER_X, PLAY_AREA_CENTER_Y - (BLOCK * 6), lang->getText(43)); + + // Your Score + text->writeCentered(PLAY_AREA_CENTER_X, PLAY_AREA_CENTER_Y - (BLOCK * 3), lang->getText(44) + std::to_string(players.at(0)->getScore())); } else { @@ -3367,7 +3378,8 @@ void Game::runGameOverScreen() text->writeCentered(PLAY_AREA_CENTER_X, PLAY_AREA_CENTER_Y - 12, lang->getText(77) + std::to_string(players.at(0)->getScore())); text->writeCentered(PLAY_AREA_CENTER_X, PLAY_AREA_CENTER_Y, lang->getText(78) + std::to_string(players.at(1)->getScore())); } - text->writeCentered(PLAY_AREA_CENTER_X, PLAY_AREA_CENTER_Y + BLOCK * 2, lang->getText(45)); + // Continue? + text->writeCentered(99, PLAY_AREA_CENTER_Y + BLOCK * 2, lang->getText(45)); gameOverMenu->render(); fade->render(); diff --git a/source/game.h b/source/game.h index 6d1558e..8a71b25 100644 --- a/source/game.h +++ b/source/game.h @@ -137,6 +137,7 @@ private: LTexture *gamePowerMeterTexture; // Textura con el marcador de poder de la fase LTexture *gameSkyColorsTexture; // Textura con los diferentes colores de fondo del juego LTexture *gameTextTexture; // Textura para los sprites con textos + LTexture *gameOverTexture; // Textura para la pantalla de game over std::vector *> itemAnimations; // Vector con las animaciones de los items std::vector *> playerAnimations; // Vector con las animaciones del jugador @@ -166,6 +167,7 @@ private: Sprite *skyColorsSprite; // Sprite con los graficos del degradado de color de fondo Sprite *grassSprite; // Sprite para la hierba Sprite *powerMeterSprite; // Sprite para el medidor de poder de la fase + Sprite *gameOverSprite; // Sprite para dibujar los graficos del game over JA_Sound balloonSound; // Sonido para la explosión del globo JA_Sound bulletSound; // Sonido para los disparos