treball en curs: correccions de tidy
This commit is contained in:
@@ -18,9 +18,9 @@ Balloon::Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 c
|
||||
switch (kind) {
|
||||
case BALLOON_1:
|
||||
// Alto y ancho del objeto
|
||||
width_ = BALLOON_WIDTH_1;
|
||||
height_ = BALLOON_WIDTH_1;
|
||||
size_ = BALLOON_SIZE_1;
|
||||
width_ = WIDTH_1;
|
||||
height_ = WIDTH_1;
|
||||
size_ = SIZE_1;
|
||||
power_ = 1;
|
||||
|
||||
// Inicializa los valores de velocidad y gravedad
|
||||
@@ -31,7 +31,7 @@ Balloon::Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 c
|
||||
default_vel_y_ = 2.6F;
|
||||
|
||||
// Puntos que da el globo al ser destruido
|
||||
score_ = BALLOON_SCORE_1;
|
||||
score_ = SCORE_1;
|
||||
|
||||
// Amenaza que genera el globo
|
||||
menace_ = 1;
|
||||
@@ -40,9 +40,9 @@ Balloon::Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 c
|
||||
|
||||
case BALLOON_2:
|
||||
// Alto y ancho del objeto
|
||||
width_ = BALLOON_WIDTH_2;
|
||||
height_ = BALLOON_WIDTH_2;
|
||||
size_ = BALLOON_SIZE_2;
|
||||
width_ = WIDTH_2;
|
||||
height_ = WIDTH_2;
|
||||
size_ = SIZE_2;
|
||||
power_ = 3;
|
||||
|
||||
// Inicializa los valores de velocidad y gravedad
|
||||
@@ -53,7 +53,7 @@ Balloon::Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 c
|
||||
default_vel_y_ = 3.5F;
|
||||
|
||||
// Puntos que da el globo al ser destruido
|
||||
score_ = BALLOON_SCORE_2;
|
||||
score_ = SCORE_2;
|
||||
|
||||
// Amenaza que genera el globo
|
||||
menace_ = 2;
|
||||
@@ -62,9 +62,9 @@ Balloon::Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 c
|
||||
|
||||
case BALLOON_3:
|
||||
// Alto y ancho del objeto
|
||||
width_ = BALLOON_WIDTH_3;
|
||||
height_ = BALLOON_WIDTH_3;
|
||||
size_ = BALLOON_SIZE_3;
|
||||
width_ = WIDTH_3;
|
||||
height_ = WIDTH_3;
|
||||
size_ = SIZE_3;
|
||||
power_ = 7;
|
||||
|
||||
// Inicializa los valores de velocidad y gravedad
|
||||
@@ -75,7 +75,7 @@ Balloon::Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 c
|
||||
default_vel_y_ = 4.50F;
|
||||
|
||||
// Puntos que da el globo al ser destruido
|
||||
score_ = BALLOON_SCORE_3;
|
||||
score_ = SCORE_3;
|
||||
|
||||
// Amenaza que genera el globo
|
||||
menace_ = 4;
|
||||
@@ -84,9 +84,9 @@ Balloon::Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 c
|
||||
|
||||
case BALLOON_4:
|
||||
// Alto y ancho del objeto
|
||||
width_ = BALLOON_WIDTH_4;
|
||||
height_ = BALLOON_WIDTH_4;
|
||||
size_ = BALLOON_SIZE_4;
|
||||
width_ = WIDTH_4;
|
||||
height_ = WIDTH_4;
|
||||
size_ = SIZE_4;
|
||||
power_ = 15;
|
||||
|
||||
// Inicializa los valores de velocidad y gravedad
|
||||
@@ -97,7 +97,7 @@ Balloon::Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 c
|
||||
default_vel_y_ = 4.95F;
|
||||
|
||||
// Puntos que da el globo al ser destruido
|
||||
score_ = BALLOON_SCORE_4;
|
||||
score_ = SCORE_4;
|
||||
|
||||
// Amenaza que genera el globo
|
||||
menace_ = 8;
|
||||
@@ -106,9 +106,9 @@ Balloon::Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 c
|
||||
|
||||
case HEXAGON_1:
|
||||
// Alto y ancho del objeto
|
||||
width_ = BALLOON_WIDTH_1;
|
||||
height_ = BALLOON_WIDTH_1;
|
||||
size_ = BALLOON_SIZE_1;
|
||||
width_ = WIDTH_1;
|
||||
height_ = WIDTH_1;
|
||||
size_ = SIZE_1;
|
||||
power_ = 1;
|
||||
|
||||
// Inicializa los valores de velocidad y gravedad
|
||||
@@ -119,7 +119,7 @@ Balloon::Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 c
|
||||
default_vel_y_ = std::fabs(velx) * 2;
|
||||
|
||||
// Puntos que da el globo al ser destruido
|
||||
score_ = BALLOON_SCORE_1;
|
||||
score_ = SCORE_1;
|
||||
|
||||
// Amenaza que genera el globo
|
||||
menace_ = 1;
|
||||
@@ -128,9 +128,9 @@ Balloon::Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 c
|
||||
|
||||
case HEXAGON_2:
|
||||
// Alto y ancho del objeto
|
||||
width_ = BALLOON_WIDTH_2;
|
||||
height_ = BALLOON_WIDTH_2;
|
||||
size_ = BALLOON_SIZE_2;
|
||||
width_ = WIDTH_2;
|
||||
height_ = WIDTH_2;
|
||||
size_ = SIZE_2;
|
||||
power_ = 3;
|
||||
|
||||
// Inicializa los valores de velocidad y gravedad
|
||||
@@ -141,7 +141,7 @@ Balloon::Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 c
|
||||
default_vel_y_ = std::fabs(velx) * 2;
|
||||
|
||||
// Puntos que da el globo al ser destruido
|
||||
score_ = BALLOON_SCORE_2;
|
||||
score_ = SCORE_2;
|
||||
|
||||
// Amenaza que genera el globo
|
||||
menace_ = 2;
|
||||
@@ -150,9 +150,9 @@ Balloon::Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 c
|
||||
|
||||
case HEXAGON_3:
|
||||
// Alto y ancho del objeto
|
||||
width_ = BALLOON_WIDTH_3;
|
||||
height_ = BALLOON_WIDTH_3;
|
||||
size_ = BALLOON_SIZE_3;
|
||||
width_ = WIDTH_3;
|
||||
height_ = WIDTH_3;
|
||||
size_ = SIZE_3;
|
||||
power_ = 7;
|
||||
|
||||
// Inicializa los valores de velocidad y gravedad
|
||||
@@ -163,7 +163,7 @@ Balloon::Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 c
|
||||
default_vel_y_ = std::fabs(velx) * 2;
|
||||
|
||||
// Puntos que da el globo al ser destruido
|
||||
score_ = BALLOON_SCORE_3;
|
||||
score_ = SCORE_3;
|
||||
|
||||
// Amenaza que genera el globo
|
||||
menace_ = 4;
|
||||
@@ -172,9 +172,9 @@ Balloon::Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 c
|
||||
|
||||
case HEXAGON_4:
|
||||
// Alto y ancho del objeto
|
||||
width_ = BALLOON_WIDTH_4;
|
||||
height_ = BALLOON_WIDTH_4;
|
||||
size_ = BALLOON_SIZE_4;
|
||||
width_ = WIDTH_4;
|
||||
height_ = WIDTH_4;
|
||||
size_ = SIZE_4;
|
||||
power_ = 15;
|
||||
|
||||
// Inicializa los valores de velocidad y gravedad
|
||||
@@ -185,7 +185,7 @@ Balloon::Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 c
|
||||
default_vel_y_ = std::fabs(velx) * 2;
|
||||
|
||||
// Puntos que da el globo al ser destruido
|
||||
score_ = BALLOON_SCORE_4;
|
||||
score_ = SCORE_4;
|
||||
|
||||
// Amenaza que genera el globo
|
||||
menace_ = 8;
|
||||
@@ -194,8 +194,8 @@ Balloon::Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 c
|
||||
|
||||
case POWER_BALL:
|
||||
// Alto y ancho del objeto
|
||||
width_ = BALLOON_WIDTH_4;
|
||||
height_ = BALLOON_WIDTH_4;
|
||||
width_ = WIDTH_4;
|
||||
height_ = WIDTH_4;
|
||||
size_ = 4;
|
||||
power_ = 0;
|
||||
|
||||
|
||||
@@ -9,57 +9,57 @@
|
||||
class AnimatedSprite;
|
||||
class Texture;
|
||||
|
||||
// Tipos de globo
|
||||
constexpr int BALLOON_1 = 1;
|
||||
constexpr int BALLOON_2 = 2;
|
||||
constexpr int BALLOON_3 = 3;
|
||||
constexpr int BALLOON_4 = 4;
|
||||
constexpr int HEXAGON_1 = 5;
|
||||
constexpr int HEXAGON_2 = 6;
|
||||
constexpr int HEXAGON_3 = 7;
|
||||
constexpr int HEXAGON_4 = 8;
|
||||
constexpr int POWER_BALL = 9;
|
||||
|
||||
// Puntos de globo
|
||||
constexpr int BALLOON_SCORE_1 = 50;
|
||||
constexpr int BALLOON_SCORE_2 = 100;
|
||||
constexpr int BALLOON_SCORE_3 = 200;
|
||||
constexpr int BALLOON_SCORE_4 = 400;
|
||||
|
||||
// Tamaños de globo
|
||||
constexpr int BALLOON_SIZE_1 = 1;
|
||||
constexpr int BALLOON_SIZE_2 = 2;
|
||||
constexpr int BALLOON_SIZE_3 = 3;
|
||||
constexpr int BALLOON_SIZE_4 = 4;
|
||||
|
||||
// Clases de globo
|
||||
constexpr int BALLOON_CLASS = 0;
|
||||
constexpr int HEXAGON_CLASS = 1;
|
||||
|
||||
// Velocidad del globo
|
||||
constexpr float BALLOON_VELX_POSITIVE = 0.7F;
|
||||
constexpr float BALLOON_VELX_NEGATIVE = -0.7F;
|
||||
|
||||
// Velocidades a las que se mueven los globos
|
||||
constexpr float BALLOON_SPEED_1 = 0.60F;
|
||||
constexpr float BALLOON_SPEED_2 = 0.70F;
|
||||
constexpr float BALLOON_SPEED_3 = 0.80F;
|
||||
constexpr float BALLOON_SPEED_4 = 0.90F;
|
||||
constexpr float BALLOON_SPEED_5 = 1.00F;
|
||||
|
||||
// Tamaño de los globos
|
||||
constexpr int BALLOON_WIDTH_1 = 8;
|
||||
constexpr int BALLOON_WIDTH_2 = 13;
|
||||
constexpr int BALLOON_WIDTH_3 = 21;
|
||||
constexpr int BALLOON_WIDTH_4 = 37;
|
||||
|
||||
// PowerBall
|
||||
constexpr int POWERBALL_SCREENPOWER_MINIMUM = 10;
|
||||
constexpr int POWERBALL_COUNTER = 8;
|
||||
|
||||
// Clase Balloon
|
||||
class Balloon {
|
||||
public:
|
||||
// Tipos de globo
|
||||
static constexpr int BALLOON_1 = 1;
|
||||
static constexpr int BALLOON_2 = 2;
|
||||
static constexpr int BALLOON_3 = 3;
|
||||
static constexpr int BALLOON_4 = 4;
|
||||
static constexpr int HEXAGON_1 = 5;
|
||||
static constexpr int HEXAGON_2 = 6;
|
||||
static constexpr int HEXAGON_3 = 7;
|
||||
static constexpr int HEXAGON_4 = 8;
|
||||
static constexpr int POWER_BALL = 9;
|
||||
|
||||
// Puntos de globo
|
||||
static constexpr int SCORE_1 = 50;
|
||||
static constexpr int SCORE_2 = 100;
|
||||
static constexpr int SCORE_3 = 200;
|
||||
static constexpr int SCORE_4 = 400;
|
||||
|
||||
// Tamaños de globo
|
||||
static constexpr int SIZE_1 = 1;
|
||||
static constexpr int SIZE_2 = 2;
|
||||
static constexpr int SIZE_3 = 3;
|
||||
static constexpr int SIZE_4 = 4;
|
||||
|
||||
// Clases de globo
|
||||
static constexpr int BALLOON_CLASS = 0;
|
||||
static constexpr int HEXAGON_CLASS = 1;
|
||||
|
||||
// Velocidad del globo
|
||||
static constexpr float VELX_POSITIVE = 0.7F;
|
||||
static constexpr float VELX_NEGATIVE = -0.7F;
|
||||
|
||||
// Velocidades a las que se mueven los globos
|
||||
static constexpr float SPEED_1 = 0.60F;
|
||||
static constexpr float SPEED_2 = 0.70F;
|
||||
static constexpr float SPEED_3 = 0.80F;
|
||||
static constexpr float SPEED_4 = 0.90F;
|
||||
static constexpr float SPEED_5 = 1.00F;
|
||||
|
||||
// Tamaño de los globos
|
||||
static constexpr int WIDTH_1 = 8;
|
||||
static constexpr int WIDTH_2 = 13;
|
||||
static constexpr int WIDTH_3 = 21;
|
||||
static constexpr int WIDTH_4 = 37;
|
||||
|
||||
// PowerBall
|
||||
static constexpr int POWERBALL_SCREENPOWER_MINIMUM = 10;
|
||||
static constexpr int POWERBALL_COUNTER = 8;
|
||||
|
||||
Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 creationtimer, Texture *texture, std::vector<std::string> *animation, SDL_Renderer *renderer); // Constructor
|
||||
~Balloon(); // Destructor
|
||||
|
||||
|
||||
+1223
-1223
File diff suppressed because it is too large
Load Diff
+139
-137
@@ -54,14 +54,14 @@ class Game {
|
||||
struct EnemyInit {
|
||||
int x; // Posición en el eje X donde crear al enemigo
|
||||
int y; // Posición en el eje Y donde crear al enemigo
|
||||
float velX; // Velocidad inicial en el eje X
|
||||
float vel_x; // Velocidad inicial en el eje X
|
||||
Uint8 kind; // Tipo de enemigo
|
||||
Uint16 creationCounter; // Temporizador para la creación del enemigo
|
||||
Uint16 creation_counter; // Temporizador para la creación del enemigo
|
||||
};
|
||||
|
||||
struct EnemyFormation // Contiene la información de una formación enemiga
|
||||
{
|
||||
Uint8 numberOfEnemies; // Cantidad de enemigos que forman la formación
|
||||
Uint8 number_of_enemies; // Cantidad de enemigos que forman la formación
|
||||
EnemyInit init[MAX_NUMBER_OF_ENEMIES_IN_A_FORMATION]; // Vector con todas las inicializaciones de los enemigos de la formación
|
||||
};
|
||||
|
||||
@@ -71,51 +71,53 @@ class Game {
|
||||
|
||||
struct Stage // Contiene todas las variables relacionadas con una fase
|
||||
{
|
||||
EnemyPool *enemyPool; // El conjunto de formaciones enemigas de la fase
|
||||
Uint16 currentPower; // Cantidad actual de poder
|
||||
Uint16 powerToComplete; // Cantidad de poder que se necesita para completar la fase
|
||||
Uint8 maxMenace; // Umbral máximo de amenaza de la fase
|
||||
Uint8 minMenace; // Umbral mínimo de amenaza de la fase
|
||||
EnemyPool *enemy_pool; // El conjunto de formaciones enemigas de la fase
|
||||
Uint16 current_power; // Cantidad actual de poder
|
||||
Uint16 power_to_complete; // Cantidad de poder que se necesita para completar la fase
|
||||
Uint8 max_menace; // Umbral máximo de amenaza de la fase
|
||||
Uint8 min_menace; // Umbral mínimo de amenaza de la fase
|
||||
Uint8 number; // Numero de fase
|
||||
};
|
||||
|
||||
struct Effect {
|
||||
bool flash; // Indica si se ha de pintar la pantalla de blanco
|
||||
bool shake; // Indica si se ha de agitar la pantalla
|
||||
Uint8 shakeCounter; // Contador para medir el tiempo que dura el efecto
|
||||
Uint8 shake_counter; // Contador para medir el tiempo que dura el efecto
|
||||
};
|
||||
|
||||
// Estado para el efecto de agitación intensa (muerte del jugador)
|
||||
struct DeathShake {
|
||||
bool active; // Indica si el efecto está activo
|
||||
Uint8 step; // Paso actual del efecto (0-7)
|
||||
Uint32 lastStepTicks; // Ticks del último paso
|
||||
Uint32 last_step_ticks; // Ticks del último paso
|
||||
};
|
||||
|
||||
// Fases de la secuencia de muerte del jugador
|
||||
enum class DeathPhase : std::uint8_t { None,
|
||||
Shaking,
|
||||
Waiting,
|
||||
Done };
|
||||
enum class DeathPhase : std::uint8_t {
|
||||
NONE,
|
||||
SHAKING,
|
||||
WAITING,
|
||||
DONE
|
||||
};
|
||||
|
||||
// Estado de la secuencia de muerte del jugador
|
||||
struct DeathSequence {
|
||||
DeathPhase phase; // Fase actual
|
||||
Uint32 phaseStartTicks; // Ticks del inicio de la fase actual
|
||||
Uint32 phase_start_ticks; // Ticks del inicio de la fase actual
|
||||
Player *player; // Jugador que está muriendo
|
||||
};
|
||||
|
||||
struct Helper {
|
||||
bool needCoffee; // Indica si se necesitan cafes
|
||||
bool needCoffeeMachine; // Indica si se necesita PowerUp
|
||||
bool needPowerBall; // Indica si se necesita una PowerBall
|
||||
bool need_coffee; // Indica si se necesitan cafes
|
||||
bool need_coffee_machine; // Indica si se necesita PowerUp
|
||||
bool need_power_ball; // Indica si se necesita una PowerBall
|
||||
int counter; // Contador para no dar ayudas consecutivas
|
||||
int itemPoints1Odds; // Probabilidad de aparición del objeto
|
||||
int itemPoints2Odds; // Probabilidad de aparición del objeto
|
||||
int itemPoints3Odds; // Probabilidad de aparición del objeto
|
||||
int itemClockOdds; // Probabilidad de aparición del objeto
|
||||
int itemCoffeeOdds; // Probabilidad de aparición del objeto
|
||||
int itemCoffeeMachineOdds; // Probabilidad de aparición del objeto
|
||||
int item_disk_odds; // Probabilidad de aparición del objeto
|
||||
int item_gavina_odds; // Probabilidad de aparición del objeto
|
||||
int item_paco_odds; // Probabilidad de aparición del objeto
|
||||
int item_clock_odds; // Probabilidad de aparición del objeto
|
||||
int item_coffee_odds; // Probabilidad de aparición del objeto
|
||||
int item_coffee_machine_odds; // Probabilidad de aparición del objeto
|
||||
};
|
||||
|
||||
struct Demo {
|
||||
@@ -123,133 +125,133 @@ class Game {
|
||||
bool recording; // Indica si está activado el modo para grabar la demo
|
||||
Uint16 counter; // Contador para el modo demo
|
||||
DemoKeys keys; // Variable con las pulsaciones de teclas del modo demo
|
||||
DemoKeys dataFile[TOTAL_DEMO_DATA]; // Datos del fichero con los movimientos para la demo
|
||||
DemoKeys data_file[TOTAL_DEMO_DATA]; // Datos del fichero con los movimientos para la demo
|
||||
};
|
||||
|
||||
// Objetos y punteros
|
||||
SDL_Renderer *renderer; // El renderizador de la ventana
|
||||
Section *section; // Seccion actual dentro del juego
|
||||
SDL_Renderer *renderer_; // El renderizador de la ventana
|
||||
Section *section_; // Seccion actual dentro del juego
|
||||
|
||||
std::vector<Player *> players; // Vector con los jugadores
|
||||
std::vector<Balloon *> balloons; // Vector con los globos
|
||||
std::vector<Bullet *> bullets; // Vector con las balas
|
||||
std::vector<Item *> items; // Vector con los items
|
||||
std::vector<SmartSprite *> smartSprites; // Vector con los smartsprites
|
||||
std::vector<Player *> players_; // Vector con los jugadores
|
||||
std::vector<Balloon *> balloons_; // Vector con los globos
|
||||
std::vector<Bullet *> bullets_; // Vector con las balas
|
||||
std::vector<Item *> items_; // Vector con los items
|
||||
std::vector<SmartSprite *> smart_sprites_; // Vector con los smartsprites
|
||||
|
||||
Texture *bulletTexture; // Textura para las balas
|
||||
std::vector<Texture *> itemTextures; // Vector con las texturas de los items
|
||||
std::vector<Texture *> balloonTextures; // Vector con las texturas de los globos
|
||||
std::vector<Texture *> player1Textures; // Vector con las texturas del jugador
|
||||
std::vector<Texture *> player2Textures; // Vector con las texturas del jugador
|
||||
std::vector<std::vector<Texture *>> playerTextures; // Vector con todas las texturas de los jugadores;
|
||||
Texture *bullet_texture_; // Textura para las balas
|
||||
std::vector<Texture *> item_textures_; // Vector con las texturas de los items
|
||||
std::vector<Texture *> balloon_textures_; // Vector con las texturas de los globos
|
||||
std::vector<Texture *> player1_textures_; // Vector con las texturas del jugador
|
||||
std::vector<Texture *> player2_textures_; // Vector con las texturas del jugador
|
||||
std::vector<std::vector<Texture *>> player_textures_; // Vector con todas las texturas de los jugadores;
|
||||
|
||||
Texture *gameBuildingsTexture; // Textura con los edificios de fondo
|
||||
Texture *gameCloudsTexture; // Textura con las nubes de fondo
|
||||
Texture *gameGrassTexture; // Textura con la hierba del suelo
|
||||
Texture *gamePowerMeterTexture; // Textura con el marcador de poder de la fase
|
||||
Texture *gameSkyColorsTexture; // Textura con los diferentes colores de fondo del juego
|
||||
Texture *gameTextTexture; // Textura para los sprites con textos
|
||||
Texture *gameOverTexture; // Textura para la pantalla de game over
|
||||
Texture *gameOverEndTexture; // Textura para la pantalla de game over de acabar el juego
|
||||
Texture *game_buildings_texture_; // Textura con los edificios de fondo
|
||||
Texture *game_clouds_texture_; // Textura con las nubes de fondo
|
||||
Texture *game_grass_texture_; // Textura con la hierba del suelo
|
||||
Texture *game_power_meter_texture_; // Textura con el marcador de poder de la fase
|
||||
Texture *game_sky_colors_texture_; // Textura con los diferentes colores de fondo del juego
|
||||
Texture *game_text_texture_; // Textura para los sprites con textos
|
||||
Texture *game_over_texture_; // Textura para la pantalla de game over
|
||||
Texture *game_over_end_texture_; // Textura para la pantalla de game over de acabar el juego
|
||||
|
||||
std::vector<std::vector<std::string> *> itemAnimations; // Vector con las animaciones de los items
|
||||
std::vector<std::vector<std::string> *> playerAnimations; // Vector con las animaciones del jugador
|
||||
std::vector<std::vector<std::string> *> balloonAnimations; // Vector con las animaciones de los globos
|
||||
std::vector<std::vector<std::string> *> item_animations_; // Vector con las animaciones de los items
|
||||
std::vector<std::vector<std::string> *> player_animations_; // Vector con las animaciones del jugador
|
||||
std::vector<std::vector<std::string> *> balloon_animations_; // Vector con las animaciones de los globos
|
||||
|
||||
Text *text; // Fuente para los textos del juego
|
||||
Text *textBig; // Fuente de texto grande
|
||||
Text *textScoreBoard; // Fuente para el marcador del juego
|
||||
Text *textNokia2; // Otra fuente de texto para mensajes
|
||||
Text *textNokiaBig2; // Y la versión en grande
|
||||
Text *text_; // Fuente para los textos del juego
|
||||
Text *text_big_; // Fuente de texto grande
|
||||
Text *text_scoreboard_; // Fuente para el marcador del juego
|
||||
Text *text_nokia2_; // Otra fuente de texto para mensajes
|
||||
Text *text_nokia_big2_; // Y la versión en grande
|
||||
|
||||
Menu *gameOverMenu; // Menú de la pantalla de game over
|
||||
Menu *pauseMenu; // Menú de la pantalla de pausa
|
||||
Menu *game_over_menu_; // Menú de la pantalla de game over
|
||||
Menu *pause_menu_; // Menú de la pantalla de pausa
|
||||
|
||||
Fade *fade; // Objeto para renderizar fades
|
||||
SDL_Event *eventHandler; // Manejador de eventos
|
||||
Fade *fade_; // Objeto para renderizar fades
|
||||
SDL_Event *event_handler_; // Manejador de eventos
|
||||
|
||||
MovingSprite *clouds1A; // Sprite para las nubes superiores
|
||||
MovingSprite *clouds1B; // Sprite para las nubes superiores
|
||||
MovingSprite *clouds2A; // Sprite para las nubes inferiores
|
||||
MovingSprite *clouds2B; // Sprite para las nubes inferiores
|
||||
SmartSprite *n1000Sprite; // Sprite con el texto 1.000
|
||||
SmartSprite *n2500Sprite; // Sprite con el texto 2.500
|
||||
SmartSprite *n5000Sprite; // Sprite con el texto 5.000
|
||||
MovingSprite *clouds1_a_; // Sprite para las nubes superiores
|
||||
MovingSprite *clouds1_b_; // Sprite para las nubes superiores
|
||||
MovingSprite *clouds2_a_; // Sprite para las nubes inferiores
|
||||
MovingSprite *clouds2_b_; // Sprite para las nubes inferiores
|
||||
SmartSprite *n1000_sprite_; // Sprite con el texto 1.000
|
||||
SmartSprite *n2500_sprite_; // Sprite con el texto 2.500
|
||||
SmartSprite *n5000_sprite_; // Sprite con el texto 5.000
|
||||
|
||||
Sprite *buildingsSprite; // Sprite con los edificios de fondo
|
||||
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
|
||||
Sprite *gameOverEndSprite; // Sprite para dibujar los graficos del game over de acabar el juego
|
||||
Sprite *buildings_sprite_; // Sprite con los edificios de fondo
|
||||
Sprite *sky_colors_sprite_; // Sprite con los graficos del degradado de color de fondo
|
||||
Sprite *grass_sprite_; // Sprite para la hierba
|
||||
Sprite *power_meter_sprite_; // Sprite para el medidor de poder de la fase
|
||||
Sprite *game_over_sprite_; // Sprite para dibujar los graficos del game over
|
||||
Sprite *game_over_end_sprite_; // Sprite para dibujar los graficos del game over de acabar el juego
|
||||
|
||||
JA_Sound_t *balloonSound; // Sonido para la explosión del globo
|
||||
JA_Sound_t *bulletSound; // Sonido para los disparos
|
||||
JA_Sound_t *playerCollisionSound; // Sonido para la colisión del jugador con un enemigo
|
||||
JA_Sound_t *hiScoreSound; // Sonido para cuando se alcanza la máxima puntuación
|
||||
JA_Sound_t *itemDropSound; // Sonido para cuando se genera un item
|
||||
JA_Sound_t *itemPickUpSound; // Sonido para cuando se recoge un item
|
||||
JA_Sound_t *coffeeOutSound; // Sonido para cuando el jugador pierde el café al recibir un impacto
|
||||
JA_Sound_t *stageChangeSound; // Sonido para cuando se cambia de fase
|
||||
JA_Sound_t *bubble1Sound; // Sonido para cuando el jugador muere
|
||||
JA_Sound_t *bubble2Sound; // Sonido para cuando el jugador muere
|
||||
JA_Sound_t *bubble3Sound; // Sonido para cuando el jugador muere
|
||||
JA_Sound_t *bubble4Sound; // Sonido para cuando el jugador muere
|
||||
JA_Sound_t *clockSound; // Sonido para cuando se detiene el tiempo con el item reloj
|
||||
JA_Sound_t *powerBallSound; // Sonido para cuando se explota una Power Ball
|
||||
JA_Sound_t *coffeeMachineSound; // Sonido para cuando la máquina de café toca el suelo
|
||||
JA_Sound_t *balloon_sound_; // Sonido para la explosión del globo
|
||||
JA_Sound_t *bullet_sound_; // Sonido para los disparos
|
||||
JA_Sound_t *player_collision_sound_; // Sonido para la colisión del jugador con un enemigo
|
||||
JA_Sound_t *hi_score_sound_; // Sonido para cuando se alcanza la máxima puntuación
|
||||
JA_Sound_t *item_drop_sound_; // Sonido para cuando se genera un item
|
||||
JA_Sound_t *item_pick_up_sound_; // Sonido para cuando se recoge un item
|
||||
JA_Sound_t *coffee_out_sound_; // Sonido para cuando el jugador pierde el café al recibir un impacto
|
||||
JA_Sound_t *stage_change_sound_; // Sonido para cuando se cambia de fase
|
||||
JA_Sound_t *bubble1_sound_; // Sonido para cuando el jugador muere
|
||||
JA_Sound_t *bubble2_sound_; // Sonido para cuando el jugador muere
|
||||
JA_Sound_t *bubble3_sound_; // Sonido para cuando el jugador muere
|
||||
JA_Sound_t *bubble4_sound_; // Sonido para cuando el jugador muere
|
||||
JA_Sound_t *clock_sound_; // Sonido para cuando se detiene el tiempo con el item reloj
|
||||
JA_Sound_t *power_ball_sound_; // Sonido para cuando se explota una Power Ball
|
||||
JA_Sound_t *coffee_machine_sound_; // Sonido para cuando la máquina de café toca el suelo
|
||||
|
||||
JA_Music_t *gameMusic; // Musica de fondo
|
||||
JA_Music_t *game_music_; // Musica de fondo
|
||||
|
||||
// Variables
|
||||
int numPlayers; // Numero de jugadores
|
||||
Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa
|
||||
Uint8 ticksSpeed; // Velocidad a la que se repiten los bucles del programa
|
||||
Uint32 hiScore; // Puntuación máxima
|
||||
bool hiScoreAchieved; // Indica si se ha superado la puntuación máxima
|
||||
std::string hiScoreName; // Nombre del jugador que ostenta la máxima puntuación
|
||||
Stage stage[10]; // Variable con los datos de cada pantalla
|
||||
Uint8 currentStage; // Indica la fase actual
|
||||
Uint8 stageBitmapCounter; // Contador para el tiempo visible del texto de Stage
|
||||
float stageBitmapPath[STAGE_COUNTER]; // Vector con los puntos Y por donde se desplaza el texto
|
||||
float getReadyBitmapPath[STAGE_COUNTER]; // Vector con los puntos X por donde se desplaza el texto
|
||||
Uint16 deathCounter; // Contador para la animación de muerte del jugador
|
||||
Uint8 menaceCurrent; // Nivel de amenaza actual
|
||||
Uint8 menaceThreshold; // Umbral del nivel de amenaza. Si el nivel de amenaza cae por debajo del umbral, se generan más globos. Si el umbral aumenta, aumenta el numero de globos
|
||||
bool timeStopped; // Indica si el tiempo está detenido
|
||||
Uint16 timeStoppedCounter; // Temporizador para llevar la cuenta del tiempo detenido
|
||||
Uint32 counter; // Contador para el juego
|
||||
Uint32 scoreDataFile[TOTAL_SCORE_DATA]; // Datos del fichero de puntos
|
||||
SDL_Rect skyColorsRect[4]; // Vector con las coordenadas de los 4 colores de cielo
|
||||
Uint16 balloonsPopped; // Lleva la cuenta de los globos explotados
|
||||
Uint8 lastEnemyDeploy; // Guarda cual ha sido la última formación desplegada para no repetir;
|
||||
int enemyDeployCounter; // Cuando se lanza una formación, se le da un valor y no sale otra hasta que llegue a cero
|
||||
float enemySpeed; // Velocidad a la que se mueven los enemigos
|
||||
float defaultEnemySpeed; // Velocidad base de los enemigos, sin incrementar
|
||||
Effect effect; // Variable para gestionar los efectos visuales
|
||||
DeathShake deathShake; // Variable para gestionar el efecto de agitación intensa
|
||||
DeathSequence deathSequence; // Variable para gestionar la secuencia de muerte
|
||||
Helper helper; // Variable para gestionar las ayudas
|
||||
bool powerBallEnabled; // Indica si hay una powerball ya activa
|
||||
Uint8 powerBallCounter; // Contador de formaciones enemigas entre la aparicion de una PowerBall y otra
|
||||
bool coffeeMachineEnabled; // Indica si hay una máquina de café en el terreno de juego
|
||||
bool gameCompleted; // Indica si se ha completado la partida, llegando al final de la ultima pantalla
|
||||
int gameCompletedCounter; // Contador para el tramo final, cuando se ha completado la partida y ya no aparecen más enemigos
|
||||
Uint8 difficulty; // Dificultad del juego
|
||||
float difficultyScoreMultiplier; // Multiplicador de puntos en función de la dificultad
|
||||
Color difficultyColor; // Color asociado a la dificultad
|
||||
Uint8 onePlayerControl; // Variable para almacenar el valor de las opciones
|
||||
EnemyFormation enemyFormation[NUMBER_OF_ENEMY_FORMATIONS]; // Vector con todas las formaciones enemigas
|
||||
EnemyPool enemyPool[10]; // Variable con los diferentes conjuntos de formaciones enemigas
|
||||
Uint8 lastStageReached; // Contiene el numero de la última pantalla que se ha alcanzado
|
||||
Demo demo; // Variable con todas las variables relacionadas con el modo demo
|
||||
int totalPowerToCompleteGame; // La suma del poder necesario para completar todas las fases
|
||||
int cloudsSpeed{0}; // Velocidad a la que se desplazan las nubes
|
||||
int pauseCounter; // Contador para salir del menu de pausa y volver al juego
|
||||
bool leavingPauseMenu; // Indica si esta saliendo del menu de pausa para volver al juego
|
||||
bool pauseInitialized; // Indica si la pausa ha sido inicializada
|
||||
bool gameOverInitialized; // Indica si el game over ha sido inicializado
|
||||
int gameOverPostFade; // Opción a realizar cuando termina el fundido del game over
|
||||
int num_players_; // Numero de jugadores
|
||||
Uint32 ticks_; // Contador de ticks para ajustar la velocidad del programa
|
||||
Uint8 ticks_speed_; // Velocidad a la que se repiten los bucles del programa
|
||||
Uint32 hi_score_; // Puntuación máxima
|
||||
bool hi_score_achieved_; // Indica si se ha superado la puntuación máxima
|
||||
std::string hi_score_name_; // Nombre del jugador que ostenta la máxima puntuación
|
||||
Stage stage_[10]; // Variable con los datos de cada pantalla
|
||||
Uint8 current_stage_; // Indica la fase actual
|
||||
Uint8 stage_bitmap_counter_; // Contador para el tiempo visible del texto de Stage
|
||||
float stage_bitmap_path_[STAGE_COUNTER]; // Vector con los puntos Y por donde se desplaza el texto
|
||||
float get_ready_bitmap_path_[STAGE_COUNTER]; // Vector con los puntos X por donde se desplaza el texto
|
||||
Uint16 death_counter_; // Contador para la animación de muerte del jugador
|
||||
Uint8 menace_current_; // Nivel de amenaza actual
|
||||
Uint8 menace_threshold_; // Umbral del nivel de amenaza. Si el nivel de amenaza cae por debajo del umbral, se generan más globos. Si el umbral aumenta, aumenta el numero de globos
|
||||
bool time_stopped_; // Indica si el tiempo está detenido
|
||||
Uint16 time_stopped_counter_; // Temporizador para llevar la cuenta del tiempo detenido
|
||||
Uint32 counter_; // Contador para el juego
|
||||
Uint32 score_data_file_[TOTAL_SCORE_DATA]; // Datos del fichero de puntos
|
||||
SDL_Rect sky_colors_rect_[4]; // Vector con las coordenadas de los 4 colores de cielo
|
||||
Uint16 balloons_popped_; // Lleva la cuenta de los globos explotados
|
||||
Uint8 last_enemy_deploy_; // Guarda cual ha sido la última formación desplegada para no repetir;
|
||||
int enemy_deploy_counter_; // Cuando se lanza una formación, se le da un valor y no sale otra hasta que llegue a cero
|
||||
float enemy_speed_; // Velocidad a la que se mueven los enemigos
|
||||
float default_enemy_speed_; // Velocidad base de los enemigos, sin incrementar
|
||||
Effect effect_; // Variable para gestionar los efectos visuales
|
||||
DeathShake death_shake_; // Variable para gestionar el efecto de agitación intensa
|
||||
DeathSequence death_sequence_; // Variable para gestionar la secuencia de muerte
|
||||
Helper helper_; // Variable para gestionar las ayudas
|
||||
bool power_ball_enabled_; // Indica si hay una powerball ya activa
|
||||
Uint8 power_ball_counter_; // Contador de formaciones enemigas entre la aparicion de una PowerBall y otra
|
||||
bool coffee_machine_enabled_; // Indica si hay una máquina de café en el terreno de juego
|
||||
bool game_completed_; // Indica si se ha completado la partida, llegando al final de la ultima pantalla
|
||||
int game_completed_counter_; // Contador para el tramo final, cuando se ha completado la partida y ya no aparecen más enemigos
|
||||
Uint8 difficulty_; // Dificultad del juego
|
||||
float difficulty_score_multiplier_; // Multiplicador de puntos en función de la dificultad
|
||||
Color difficulty_color_; // Color asociado a la dificultad
|
||||
Uint8 player_one_control_; // Variable para almacenar el valor de las opciones
|
||||
EnemyFormation enemy_formation_[NUMBER_OF_ENEMY_FORMATIONS]; // Vector con todas las formaciones enemigas
|
||||
EnemyPool enemy_pool_[10]; // Variable con los diferentes conjuntos de formaciones enemigas
|
||||
Uint8 last_stage_reached_; // Contiene el numero de la última pantalla que se ha alcanzado
|
||||
Demo demo_; // Variable con todas las variables relacionadas con el modo demo
|
||||
int total_power_to_complete_game_; // La suma del poder necesario para completar todas las fases
|
||||
int clouds_speed_{0}; // Velocidad a la que se desplazan las nubes
|
||||
int pause_counter_; // Contador para salir del menu de pausa y volver al juego
|
||||
bool leaving_pause_menu_; // Indica si esta saliendo del menu de pausa para volver al juego
|
||||
bool pause_initialized_; // Indica si la pausa ha sido inicializada
|
||||
bool game_over_initialized_; // Indica si el game over ha sido inicializado
|
||||
int game_over_post_fade_; // Opción a realizar cuando termina el fundido del game over
|
||||
#ifdef PAUSE
|
||||
bool pause;
|
||||
#endif
|
||||
@@ -375,7 +377,7 @@ class Game {
|
||||
void renderBullets();
|
||||
|
||||
// Crea un objeto bala
|
||||
void createBullet(int x, int y, Bullet::Kind kind, bool poweredUp, int owner);
|
||||
void createBullet(int x, int y, Bullet::Kind kind, bool powered_up, int owner);
|
||||
|
||||
// Vacia el vector de balas
|
||||
void freeBullets();
|
||||
@@ -520,7 +522,7 @@ class Game {
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
Game(int numPlayers, int currentStage, SDL_Renderer *renderer, bool demo, Section *section);
|
||||
Game(int num_players, int current_stage, SDL_Renderer *renderer, bool demo, Section *section);
|
||||
|
||||
// Destructor
|
||||
~Game();
|
||||
|
||||
+556
-554
File diff suppressed because it is too large
Load Diff
+101
-132
@@ -18,144 +18,113 @@ class Texture;
|
||||
struct JA_Music_t;
|
||||
struct JA_Sound_t;
|
||||
|
||||
// Textos
|
||||
constexpr const char *TEXT_COPYRIGHT = "@2020 JailDesigner (v2.3.4)";
|
||||
|
||||
// Contadores
|
||||
constexpr int TITLE_COUNTER = 800;
|
||||
|
||||
// Cantidad de eventos de la pantalla de título
|
||||
constexpr int TITLE_TOTAL_EVENTS = 2;
|
||||
|
||||
class Title {
|
||||
private:
|
||||
struct MenuData {
|
||||
Menu *title; // Menu de la pantalla de título
|
||||
Menu *options; // Menú de la pantalla de opciones
|
||||
Menu *playerSelect; // Menu para elegir jugador
|
||||
Menu *active; // Menu activo (de momento para la pantalla del titulo)
|
||||
bool keyPressed; // Variable para evitar la repetición de teclas en los menus
|
||||
};
|
||||
|
||||
// Objetos y punteros
|
||||
SDL_Renderer *renderer; // El renderizador de la ventana
|
||||
Instructions *instructions{nullptr}; // Objeto para la sección de las instrucciones
|
||||
Game *demoGame{nullptr}; // Objeto para lanzar la demo del juego
|
||||
SDL_Event *eventHandler; // Manejador de eventos
|
||||
Section *section; // Indicador para el bucle del titulo
|
||||
|
||||
Texture *dustTexture; // Textura con los graficos del polvo
|
||||
Texture *coffeeTexture; // Textura con los graficos de la palabra coffee
|
||||
Texture *crisisTexture; // Textura con los graficos de la plabra crisis
|
||||
Texture *gradientTexture; // Textura con los graficos para el degradado del fondo del titulo
|
||||
|
||||
SDL_Rect backgroundWindow; // Ventana visible para la textura de fondo del titulo
|
||||
SDL_Texture *background; // Textura dibujar el fondo del titulo
|
||||
|
||||
AnimatedSprite *dustBitmapL; // Sprite con la el polvo que aparece al colisionar el texto de la pantalla de titulo
|
||||
AnimatedSprite *dustBitmapR; // Sprite con la el polvo que aparece al colisionar el texto de la pantalla de titulo
|
||||
|
||||
SmartSprite *coffeeBitmap; // Sprite con la palabra COFFEE para la pantalla de titulo
|
||||
SmartSprite *crisisBitmap; // Sprite con la palabra CRISIS para la pantalla de titulo
|
||||
|
||||
Sprite *gradient; // Sprite para dibujar el degradado del titulo
|
||||
|
||||
Text *text1; // Objeto de texto para poder escribir textos en pantalla
|
||||
Text *text2; // Objeto de texto para poder escribir textos en pantalla
|
||||
Fade *fade; // Objeto para realizar fundidos en pantalla
|
||||
|
||||
// Variable
|
||||
JA_Music_t *titleMusic; // Musica para el titulo
|
||||
JA_Sound_t *crashSound; // Sonido con el impacto del título
|
||||
int backgroundCounter; // Temporizador para el fondo de tiles de la pantalla de titulo
|
||||
int counter; // Temporizador para la pantalla de titulo
|
||||
Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa
|
||||
Uint8 backgroundMode; // Variable para almacenar el tipo de efecto que hará el fondo de la pantalla de titulo
|
||||
float sin[360]; // Vector con los valores del seno precalculados
|
||||
bool menuVisible; // Indicador para saber si se muestra el menu del titulo o la frase intermitente
|
||||
bool demo; // Indica si el modo demo estará activo
|
||||
Section nextSection; // Indica cual es la siguiente sección a cargar cuando termine el contador del titulo
|
||||
Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa
|
||||
Uint8 postFade; // Opción a realizar cuando termina el fundido
|
||||
MenuData menu; // Variable con todos los objetos menus y sus variables
|
||||
// Snapshot per a permetre CANCEL al menú d'opcions.
|
||||
Options::Video prevVideo;
|
||||
Options::Window prevWindow;
|
||||
Options::Settings prevSettings;
|
||||
std::vector<InputDevice> prevInputs;
|
||||
std::vector<InputDevice> availableInputDevices; // Vector con todos los metodos de control disponibles
|
||||
std::vector<int> deviceIndex; // Indice para el jugador [i] del vector de dispositivos de entrada disponibles
|
||||
|
||||
// Variables para la vibración del título (SUBSECTION_TITLE_2)
|
||||
int vibrationStep; // Paso actual de la vibración
|
||||
int vibrationCoffeeBaseX{0}; // Posición X base del bitmap Coffee
|
||||
int vibrationCrisisBaseX{0}; // Posición X base del bitmap Crisis
|
||||
bool vibrationInitialized; // Indica si se han capturado las posiciones base
|
||||
|
||||
// Variables para sub-estados delegados (instrucciones y demo)
|
||||
bool instructionsActive; // Indica si las instrucciones están activas
|
||||
bool demoGameActive; // Indica si el juego demo está activo
|
||||
Instructions::Mode instructionsMode{Instructions::Mode::AUTO}; // Modo de las instrucciones activas
|
||||
bool demoThenInstructions; // Indica si tras la demo hay que mostrar instrucciones
|
||||
|
||||
// Inicializa los valores
|
||||
void init();
|
||||
|
||||
// Actualiza las variables del objeto
|
||||
void update();
|
||||
|
||||
// Dibuja el objeto en pantalla
|
||||
void render();
|
||||
|
||||
// Comprueba las entradas
|
||||
void checkInput();
|
||||
|
||||
// Actualiza el tileado de fondo
|
||||
void updateBG();
|
||||
|
||||
// Cambia el valor de la variable de modo de pantalla completa
|
||||
static void switchFullScreenModeVar();
|
||||
|
||||
// Actualiza los elementos de los menus
|
||||
void updateMenuLabels() const;
|
||||
|
||||
// Aplica las opciones de menu seleccionadas
|
||||
void applyOptions();
|
||||
|
||||
// Ejecuta la parte donde se muestran las instrucciones
|
||||
void runInstructions(Instructions::Mode mode);
|
||||
|
||||
// Ejecuta el juego en modo demo
|
||||
void runDemoGame();
|
||||
|
||||
// Modifica las opciones para los controles de los jugadores
|
||||
auto updatePlayerInputs(int numPlayer) -> bool;
|
||||
|
||||
// Crea el mosaico de fondo del titulo
|
||||
void createTiledBackground();
|
||||
|
||||
// Comprueba cuantos mandos hay conectados para gestionar el menu de opciones
|
||||
void checkInputDevices();
|
||||
|
||||
// Recarga las texturas
|
||||
void reLoadTextures();
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
Title(SDL_Renderer *renderer, Section *section);
|
||||
|
||||
// Destructor
|
||||
~Title();
|
||||
Title(SDL_Renderer *renderer, Section *section); // Constructor
|
||||
~Title(); // Destructor
|
||||
|
||||
Title(const Title &) = delete;
|
||||
auto operator=(const Title &) -> Title & = delete;
|
||||
|
||||
// Bucle para el titulo del juego
|
||||
void run();
|
||||
void run(); // Bucle para el titulo del juego
|
||||
void iterate(); // Ejecuta un frame
|
||||
void handleEvent(const SDL_Event *event); // Procesa un evento
|
||||
|
||||
// Ejecuta un frame
|
||||
void iterate();
|
||||
private:
|
||||
static constexpr const char *COPYRIGHT = "@2020 JailDesigner (v2.3.4)";
|
||||
static constexpr int COUNTER = 800;
|
||||
|
||||
// Procesa un evento
|
||||
void handleEvent(const SDL_Event *event);
|
||||
struct MenuData {
|
||||
Menu *title; // Menu de la pantalla de título
|
||||
Menu *options; // Menú de la pantalla de opciones
|
||||
Menu *player_select; // Menu para elegir jugador
|
||||
Menu *active; // Menu activo (de momento para la pantalla del titulo)
|
||||
bool key_pressed; // Variable para evitar la repetición de teclas en los menus
|
||||
};
|
||||
|
||||
// Objetos y punteros
|
||||
SDL_Renderer *renderer_; // El renderizador de la ventana
|
||||
Instructions *instructions_{nullptr}; // Objeto para la sección de las instrucciones
|
||||
Game *demo_game_{nullptr}; // Objeto para lanzar la demo del juego
|
||||
SDL_Event *event_handler_; // Manejador de eventos
|
||||
Section *section_; // Indicador para el bucle del titulo
|
||||
|
||||
Texture *dust_texture_; // Textura con los graficos del polvo
|
||||
Texture *coffee_texture_; // Textura con los graficos de la palabra coffee
|
||||
Texture *crisis_texture_; // Textura con los graficos de la plabra crisis
|
||||
Texture *gradient_texture_; // Textura con los graficos para el degradado del fondo del titulo
|
||||
|
||||
SDL_Rect background_window_; // Ventana visible para la textura de fondo del titulo
|
||||
SDL_Texture *background_; // Textura dibujar el fondo del titulo
|
||||
|
||||
AnimatedSprite *dust_bitmap_left_; // Sprite con la el polvo que aparece al colisionar el texto de la pantalla de titulo
|
||||
AnimatedSprite *dust_bitmap_right_; // Sprite con la el polvo que aparece al colisionar el texto de la pantalla de titulo
|
||||
|
||||
SmartSprite *coffee_bitmap_; // Sprite con la palabra COFFEE para la pantalla de titulo
|
||||
SmartSprite *crisis_bitmap_; // Sprite con la palabra CRISIS para la pantalla de titulo
|
||||
|
||||
Sprite *gradient_; // Sprite para dibujar el degradado del titulo
|
||||
|
||||
Text *text1_; // Objeto de texto para poder escribir textos en pantalla
|
||||
Text *text2_; // Objeto de texto para poder escribir textos en pantalla
|
||||
Fade *fade_; // Objeto para realizar fundidos en pantalla
|
||||
|
||||
// Variables
|
||||
JA_Music_t *title_music_; // Musica para el titulo
|
||||
JA_Sound_t *crash_sound_; // Sonido con el impacto del título
|
||||
int background_counter_; // Temporizador para el fondo de tiles de la pantalla de titulo
|
||||
int counter_; // Temporizador para la pantalla de titulo
|
||||
Uint32 ticks_; // Contador de ticks para ajustar la velocidad del programa
|
||||
Uint8 background_mode_; // Variable para almacenar el tipo de efecto que hará el fondo de la pantalla de titulo
|
||||
float sin_[360]; // Vector con los valores del seno precalculados
|
||||
bool menu_visible_; // Indicador para saber si se muestra el menu del titulo o la frase intermitente
|
||||
bool demo_; // Indica si el modo demo estará activo
|
||||
Section next_section_; // Indica cual es la siguiente sección a cargar cuando termine el contador del titulo
|
||||
Uint32 ticks_speed_; // Velocidad a la que se repiten los bucles del programa
|
||||
Uint8 post_fade_; // Opción a realizar cuando termina el fundido
|
||||
MenuData menu_; // Variable con todos los objetos menus y sus variables
|
||||
// Snapshot per a permetre CANCEL al menú d'opcions.
|
||||
Options::Video prev_video_;
|
||||
Options::Window prev_window_;
|
||||
Options::Settings prev_settings_;
|
||||
std::vector<InputDevice> prev_inputs_;
|
||||
std::vector<InputDevice> available_input_devices_; // Vector con todos los metodos de control disponibles
|
||||
std::vector<int> device_index_; // Indice para el jugador [i] del vector de dispositivos de entrada disponibles
|
||||
|
||||
// Variables para la vibración del título (SUBSECTION_TITLE_2)
|
||||
int vibration_step_; // Paso actual de la vibración
|
||||
int vibration_coffee_base_x_{0}; // Posición X base del bitmap Coffee
|
||||
int vibration_crisis_base_x_{0}; // Posición X base del bitmap Crisis
|
||||
bool vibration_initialized_; // Indica si se han capturado las posiciones base
|
||||
|
||||
// Variables para sub-estados delegados (instrucciones y demo)
|
||||
bool instructions_active_; // Indica si las instrucciones están activas
|
||||
bool demo_game_active_; // Indica si el juego demo está activo
|
||||
Instructions::Mode instructions_mode_{Instructions::Mode::AUTO}; // Modo de las instrucciones activas
|
||||
bool demo_then_instructions_; // Indica si tras la demo hay que mostrar instrucciones
|
||||
|
||||
void init(); // Inicializa los valores
|
||||
void update(); // Actualiza las variables del objeto
|
||||
void render(); // Dibuja el objeto en pantalla
|
||||
void checkInput(); // Comprueba las entradas
|
||||
|
||||
// Helpers de update, uno por cada subsección y por cada switch dentro del título 3
|
||||
void updateTitle1();
|
||||
void updateTitle2();
|
||||
void updateTitle3();
|
||||
void handlePostFadeAction();
|
||||
void handleTitleMenuSelection();
|
||||
void handlePlayerSelectMenuSelection();
|
||||
void handleOptionsMenuSelection();
|
||||
|
||||
void updateBG(); // Actualiza el tileado de fondo
|
||||
static void switchFullScreenModeVar(); // Cambia el valor de la variable de modo de pantalla completa
|
||||
void updateMenuLabels() const; // Actualiza los elementos de los menus
|
||||
void applyOptions(); // Aplica las opciones de menu seleccionadas
|
||||
void runInstructions(Instructions::Mode mode); // Ejecuta la parte donde se muestran las instrucciones
|
||||
void runDemoGame(); // Ejecuta el juego en modo demo
|
||||
auto updatePlayerInputs(int num_player) -> bool; // Modifica las opciones para los controles de los jugadores
|
||||
void createTiledBackground(); // Crea el mosaico de fondo del titulo
|
||||
void checkInputDevices(); // Comprueba cuantos mandos hay conectados para gestionar el menu de opciones
|
||||
void reLoadTextures(); // Recarga las texturas
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user