fix: els globos verds s'inicialitzaven amb vy = 0 per gastar abs en lloc de fabs fix: corregit un bug milenari que de sempre havia creat els balloons verds al popar al pare amb la meitat de velocitat en y. Lo que jo no se es com anava res. Supose que ara el joc serà un poc mes xungo. Quan rebotaven en el piso ja se'ls posava la velocitat bona (crec)
67 lines
2.6 KiB
C++
67 lines
2.6 KiB
C++
#pragma once
|
|
|
|
constexpr int NUMBER_OF_BALLOON_FORMATIONS = 100;
|
|
constexpr int MAX_NUMBER_OF_BALLOONS_IN_A_FORMATION = 50;
|
|
|
|
// Estructuras
|
|
struct BalloonFormationParams
|
|
{
|
|
int x = 0; // Posición en el eje X donde crear al enemigo
|
|
int y = 0; // Posición en el eje Y donde crear al enemigo
|
|
float vel_x = 0.0f; // Velocidad inicial en el eje X
|
|
int kind = 0; // Tipo de enemigo
|
|
int creation_counter = 0; // Temporizador para la creación del enemigo
|
|
|
|
// Constructor que inicializa todos los campos con valores proporcionados o predeterminados
|
|
BalloonFormationParams(int x_val = 0, int y_val = 0, float vel_x_val = 0.0f, int kind_val = 0, int creation_counter_val = 0)
|
|
: x(x_val), y(y_val), vel_x(vel_x_val), kind(kind_val), creation_counter(creation_counter_val) {}
|
|
};
|
|
|
|
struct BalloonFormationUnit // Contiene la información de una formación enemiga
|
|
{
|
|
int number_of_balloons; // Cantidad de enemigos que forman la formación
|
|
BalloonFormationParams init[MAX_NUMBER_OF_BALLOONS_IN_A_FORMATION]; // Vector con todas las inicializaciones de los enemigos de la formación
|
|
};
|
|
|
|
struct BalloonFormationPool
|
|
{
|
|
BalloonFormationUnit *set[10]; // Conjunto de formaciones de globos
|
|
};
|
|
|
|
struct Stage // Contiene todas las variables relacionadas con una fase
|
|
{
|
|
BalloonFormationPool *balloon_pool; // El conjunto de formaciones de globos de la fase
|
|
int power_to_complete; // Cantidad de poder que se necesita para completar la fase
|
|
int max_menace; // Umbral máximo de amenaza de la fase
|
|
int min_menace; // Umbral mínimo de amenaza de la fase
|
|
int number; // Número de fase
|
|
};
|
|
|
|
// Clase BalloonFormations, para gestionar las formaciones de globos
|
|
class BalloonFormations
|
|
{
|
|
private:
|
|
// Variables
|
|
Stage stage_[10]; // Variable con los datos de cada pantalla
|
|
BalloonFormationUnit balloon_formation_[NUMBER_OF_BALLOON_FORMATIONS]; // Vector con todas las formaciones enemigas
|
|
BalloonFormationPool balloon_formation_pool_[10]; // Variable con los diferentes conjuntos de formaciones enemigas
|
|
|
|
// Inicializa las formaciones enemigas
|
|
void initBalloonFormations();
|
|
|
|
// Inicializa los conjuntos de formaciones
|
|
void initBalloonFormationPools();
|
|
|
|
// Inicializa las fases del juego
|
|
void initGameStages();
|
|
|
|
public:
|
|
// Constructor
|
|
BalloonFormations();
|
|
|
|
// Destructor
|
|
~BalloonFormations() = default;
|
|
|
|
// Devuelve una fase
|
|
Stage getStage(int index) const;
|
|
}; |