Treballant en el final del joc

This commit is contained in:
2024-10-31 11:58:01 +01:00
parent 7e2691e33e
commit 30dfa4c545
7 changed files with 502 additions and 656 deletions

View File

@@ -64,7 +64,12 @@ constexpr int TOTAL_SCORE_DATA = 3;
class Game
{
private:
// Constantes
// Enum
enum class GameStatus
{
PLAYING,
COMPLETED,
};
// Contadores
static constexpr int HELP_COUNTER_ = 1000;
@@ -157,7 +162,6 @@ private:
Helper helper_; // Variable para gestionar las ayudas
Uint32 ticks_ = 0; // Contador de ticks para ajustar la velocidad del programa
bool coffee_machine_enabled_ = false; // Indica si hay una máquina de café en el terreno de juego
bool game_completed_ = false; // Indica si se ha completado la partida, llegando al final de la ultima pantalla
bool hi_score_achieved_ = false; // Indica si se ha superado la puntuación máxima
bool paused_ = false; // Indica si el juego está pausado (no se deberia de poder utilizar en el modo arcade)
bool power_ball_enabled_ = false; // Indica si hay una powerball ya activa
@@ -176,6 +180,7 @@ private:
int power_ball_counter_ = 0; // Contador de formaciones enemigas entre la aparicion de una PowerBall y otra
int time_stopped_counter_ = 0; // Temporizador para llevar la cuenta del tiempo detenido
int total_power_to_complete_game_; // La suma del poder necesario para completar todas las fases
GameStatus status_ = GameStatus::PLAYING; // Estado
#ifdef DEBUG
bool auto_pop_balloons_ = false; // Si es true, incrementa automaticamente los globos explotados
#endif
@@ -232,7 +237,7 @@ private:
void setBalloonSpeed(float speed);
// Actualiza la velocidad de los globos en funcion del poder acumulado de la fase
void updateBalloonSpeed();
void checkAndUpdateBalloonSpeed();
// Explosiona un globo. Lo destruye y crea otros dos si es el caso
void popBalloon(std::shared_ptr<Balloon> balloon);
@@ -243,6 +248,9 @@ private:
// Destruye todos los globos
void destroyAllBalloons();
// Destruye todos los items
void destroyAllItems();
// Detiene todos los globos
void stopAllBalloons();
@@ -357,9 +365,6 @@ private:
// Calcula el poder actual de los globos en pantalla
int calculateScreenPower();
// Actualiza el tramo final de juego, una vez completado
void updateGameCompleted();
// Actualiza las variables de ayuda
void updateHelper();
@@ -459,6 +464,18 @@ private:
// Detiene la música
void stopMusic();
// Actualiza las variables durante el modo demo
void updateDemo();
#ifdef RECORDING
// Actualiza las variables durante el modo de grabación
void updateRecording();
#endif
// Actualiza las variables durante el transcurso normal del juego
void updateNormalGame();
// Actualiza las variables durante el transcurso del final del juego
void updateCompletedGame();
public:
// Constructor
Game(int playerID, int current_stage, bool demo);