From f880bb7d7413c967e06430d0e405f4c7daf009be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20Valor=20Mart=C3=ADnez?= Date: Sat, 8 Oct 2022 00:14:14 +0200 Subject: [PATCH] Modificado el ritmo de las numbes i el cambio de color del cielo --- Makefile | 2 +- data/config/config.bin | Bin 24 -> 24 bytes data/gfx/menu_game_over.png | Bin 3693 -> 3707 bytes source/game.cpp | 18 +++++++++++++++++- source/game.h | 1 + source/player.cpp | 5 ++++- todo.txt | 8 ++++---- 7 files changed, 27 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 558d789..99ec3f7 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ windows: g++ -std=c++11 -Wall -O2 source/*.cpp -lmingw32 -lSDL2main -lSDL2 -o bin/$(executable).exe macos: mkdir -p bin - g++ -std=c++11 -Wall -O2 -lSDL2 source/*.cpp -o bin/$(executable)_macos + g++ source/*.cpp -std=c++11 -Wall -O2 -lSDL2 -o bin/$(executable)_macos linux: mkdir -p bin g++ source/*.cpp -std=c++11 -Wall -Os -lSDL2 -ffunction-sections -fdata-sections -Wl,--gc-sections -o bin/$(executable)_linux diff --git a/data/config/config.bin b/data/config/config.bin index 3036baec1c147f9c3a44fc9621721762874fef9c..0f82916333746e88a84f06ffde6f193df3f6775c 100644 GIT binary patch literal 24 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 LNkvXXu0mjfW-k9A delta 3679 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 diff --git a/source/game.cpp b/source/game.cpp index 9929674..0ce70b3 100644 --- a/source/game.cpp +++ b/source/game.cpp @@ -296,6 +296,12 @@ void Game::init() balloonsPopped += stage[i].powerToComplete; } + totalPowerToCompleteGame = 0; + for (int i = 0; i < 10; ++i) + { + totalPowerToCompleteGame += stage[i].powerToComplete; + } + // Modo demo demo.recording = false; demo.counter = 0; @@ -2749,6 +2755,13 @@ void Game::update() // Actualiza el fondo void Game::updateBackground() { + const float speed = (-0.2f) + (-3.00f * ((float)balloonsPopped / (float)totalPowerToCompleteGame)); + + clouds1A->setVelX(speed); + clouds1B->setVelX(speed); + clouds2A->setVelX(speed / 2); + clouds2B->setVelX(speed / 2); + clouds1A->move(); clouds1B->move(); clouds2A->move(); @@ -2789,7 +2802,7 @@ void Game::updateBackground() // Dibuja el fondo void Game::renderBackground() { - const float gradientNumber = std::min(((float)balloonsPopped / 1000.0f), 3.0f); + const float gradientNumber = std::min(((float)balloonsPopped / 1250.0f), 3.0f); const float percent = gradientNumber - (int)gradientNumber; const int alpha = std::max((255 - (int)(255 * percent)), 0); @@ -2847,6 +2860,9 @@ void Game::render() renderFlashEffect(); + const std::string txt = std::to_string(balloonsPopped) + "-" + std::to_string(totalPowerToCompleteGame); + text->write(0, 0, txt); + // Vuelca el contenido del renderizador en pantalla screen->blit(); } diff --git a/source/game.h b/source/game.h index 31f5f8f..4addfd8 100644 --- a/source/game.h +++ b/source/game.h @@ -229,6 +229,7 @@ private: enemyPool_t enemyPool[10]; // Variable con los diferentes conjuntos de formaciones enemigas Uint8 lastStageReached; // Contiene el numero de la última pantalla que se ha alcanzado demo_t demo; // Variable con todas las variables relacionadas con el modo demo + int totalPowerToCompleteGame; // La suma del poder necesario para completar todas las fases // Actualiza el juego void update(); diff --git a/source/player.cpp b/source/player.cpp index fb458c0..85d5fbd 100644 --- a/source/player.cpp +++ b/source/player.cpp @@ -235,7 +235,8 @@ void Player::setAnimation() aHeadCoffees = "_1C"; } - const std::string aPowerUp = powerUp ? "_pwr" : ""; + //const std::string aPowerUp = powerUp ? "_pwr" : ""; + const std::string aPowerUp = ""; const std::string aWalking = statusWalking == PLAYER_STATUS_WALKING_STOP ? "stand" : "walk"; const std::string aFiring = statusFiring == PLAYER_STATUS_FIRING_UP ? "centershoot" : "sideshoot"; @@ -605,10 +606,12 @@ void Player::updatePowerUpHeadOffset() if (powerUpCounter % 10 > 4) { // powerUpHeadOffset = 96; + fireSprite->setEnabled(false); } else { // powerUpHeadOffset = 0; + fireSprite->setEnabled(true); } } } diff --git a/todo.txt b/todo.txt index 3879b53..ec29b2f 100644 --- a/todo.txt +++ b/todo.txt @@ -1,7 +1,7 @@ x los items se quedan pegados en el techo (comprobar si sigue pasando, he cambiado la coreción al chocar arriba. Si sigue fallando se quita la comprobación superior) x la maquina de cafe no toca el suelo x las bolas verdes nacen naranja al explotarlas -falta el aura de superguerrero al pillar la maquina de cafe +x falta el aura de superguerrero al pillar la maquina de cafe x la powerball deja la mascara al explotarlas x los menus de pausa y game over falta poner bien los textos x cuando continuas la partida sigues muerto @@ -10,8 +10,8 @@ x arreglar los smart sprites de muerte y de perder el cafe x arreglar los items de las instrucciones x que cicle la musica en el titulo, demo, instrucciones NO que guarde el progreso del juego -que aumente la velocidad de las nubes conforme avanzas -retocar un poco la distancia entre los cambios de color del cielo, se llega al oscuro muy pronto +x que aumente la velocidad de las nubes conforme avanzas +x retocar un poco la distancia entre los cambios de color del cielo, se llega al oscuro muy pronto x las balas deberian llegar a salir de la pantalla x hacer desaparecer los accesos a disco en el juego. cargar todos los recursos previamente y pasarlos por punteros x la powerball se para con el reloj y sigue rodando @@ -22,4 +22,4 @@ NO o que diga DIMONIS! en un globo de texto que se evapore NO podrian salir comentarios aleatoriamente o con ciertos eventos (falta ver si no estorbará) x que se vea el nivel de dificultad poner un dibujito en la pantalla de game over al terminar el juego -y quizas otro en la propia pantalla de game over \ No newline at end of file +x y quizas otro en la propia pantalla de game over \ No newline at end of file