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 3036bae..0f82916 100644 Binary files a/data/config/config.bin and b/data/config/config.bin differ diff --git a/data/gfx/menu_game_over.png b/data/gfx/menu_game_over.png index a69fb6f..c70d2e8 100644 Binary files a/data/gfx/menu_game_over.png and b/data/gfx/menu_game_over.png differ 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