Acabada de perfilar la classe PathSprite Menjeades declaracions de utils.h als fitxers que toca
82 lines
3.1 KiB
C++
82 lines
3.1 KiB
C++
#pragma once
|
|
|
|
#include <SDL2/SDL_rect.h> // Para SDL_Rect
|
|
#include <string> // Para string
|
|
#include <vector> // Para vector
|
|
#include "utils.h" // Para Color, Zone
|
|
|
|
// param.game
|
|
struct ParamGame
|
|
{
|
|
int width; // Ancho de la resolucion nativa del juego
|
|
int height; // Alto de la resolucion nativa del juego
|
|
int item_size; // Tamaño de los items del juego
|
|
Zone play_area; // Rectangulo con la posición de la zona de juego
|
|
Zone game_area; // Rectangulo con las dimensiones del juego
|
|
int enter_name_seconds; // Duración en segundos para introducir el nombre al finalizar la partida
|
|
};
|
|
|
|
// param.fade
|
|
struct ParamFade
|
|
{
|
|
int num_squares_width; // Cantidad total de cuadraditos en horizontal para el FadeType::RANDOM_SQUARE
|
|
int num_squares_height; // Cantidad total de cuadraditos en vertical para el FadeType::RANDOM_SQUARE
|
|
int random_squares_delay; // Duración entre cada pintado de cuadrados
|
|
int random_squares_mult; // Cantidad de cuadrados que se pintaran cada vez
|
|
int post_duration; // Duración final del fade
|
|
int venetian_size; // Altura de los rectangulos para FadeType::VENETIAN
|
|
};
|
|
|
|
// param.title
|
|
struct ParamTitle
|
|
{
|
|
int press_start_position; // Posición del texto para empezar a jugar
|
|
int title_duration; // Tiempo de inactividad del titulo
|
|
int arcade_edition_position; // Posición del bitmap
|
|
int title_c_c_position; // Posición del bitmap
|
|
};
|
|
|
|
// param.background
|
|
struct ParamBackground
|
|
{
|
|
Color attenuate_color;
|
|
int attenuate_alpha;
|
|
};
|
|
|
|
struct ParamBalloon
|
|
{
|
|
float grav; // Aceleración en el eje Y. Modifica la velocidad
|
|
float vel; // Velocidad inicial que tienen al rebotar contra el suelo
|
|
|
|
// Constructor
|
|
explicit ParamBalloon(float grav_val = 0.0f, float vel_val = 0.0f)
|
|
: grav(grav_val), vel(vel_val) {}
|
|
};
|
|
|
|
// Estructura para las opciones de las notificaciones
|
|
struct ParamNotification
|
|
{
|
|
NotifyPosition pos_h; // Ubicación de las notificaciones en pantalla
|
|
NotifyPosition pos_v; // Ubicación de las notificaciones en pantalla
|
|
bool sound; // Indica si las notificaciones suenan
|
|
Color color; // Color de las notificaciones
|
|
};
|
|
|
|
// Estructura para almacenar todos los parámetros del juego
|
|
struct Param
|
|
{
|
|
ParamGame game; // Parametros relacionados con el juego
|
|
ParamFade fade; // Parametros para ajustar el fade
|
|
SDL_Rect scoreboard; // Posición y tamaño del marcador
|
|
ParamTitle title; // Parametros con ajustes para la sección Title
|
|
ParamBackground background; // Parametros que afectan a la clase Background
|
|
std::vector<ParamBalloon> balloon; // Parametros de velocidad y gravedad de cada tipo de globo
|
|
ParamNotification notification; // Opciones para las notificaciones
|
|
|
|
Param() { balloon.reserve(4); }
|
|
};
|
|
|
|
extern Param param;
|
|
|
|
// Establece valores para los parametros a partir de un fichero de texto
|
|
void loadParamsFromFile(const std::string &file_path); |