4 merdes fetes en la feina pr avorriment
This commit is contained in:
@@ -21,8 +21,50 @@ enum class ScreenFilter : Uint32 {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class Screen {
|
class Screen {
|
||||||
|
public:
|
||||||
|
// [SINGLETON] Crearemos el objeto con esta función estática
|
||||||
|
static void init();
|
||||||
|
|
||||||
|
// [SINGLETON] Destruiremos el objeto con esta función estática
|
||||||
|
static void destroy();
|
||||||
|
|
||||||
|
// [SINGLETON] Con este método obtenemos el objeto y podemos trabajar con él
|
||||||
|
static auto get() -> Screen*;
|
||||||
|
|
||||||
|
void clearRenderer(Color color = {0x00, 0x00, 0x00}); // Limpia el renderer
|
||||||
|
void clearSurface(Uint8 index); // Limpia la game_surface_
|
||||||
|
void start(); // Prepara para empezar a dibujar en la textura de juego
|
||||||
|
void render(); // Vuelca el contenido del renderizador en pantalla
|
||||||
|
void update(float delta_time); // Actualiza la lógica de la clase
|
||||||
|
void setVideoMode(bool mode); // Establece el modo de video
|
||||||
|
void toggleVideoMode(); // Camibia entre pantalla completa y ventana
|
||||||
|
void toggleIntegerScale(); // Alterna entre activar y desactivar el escalado entero
|
||||||
|
void toggleVSync(); // Alterna entre activar y desactivar el V-Sync
|
||||||
|
auto decWindowZoom() -> bool; // Reduce el tamaño de la ventana
|
||||||
|
auto incWindowZoom() -> bool; // Aumenta el tamaño de la ventana
|
||||||
|
void setBorderColor(Uint8 color); // Cambia el color del borde
|
||||||
|
static void setBorderWidth(int width); // Establece el tamaño del borde
|
||||||
|
static void setBorderHeight(int height); // Establece el tamaño del borde
|
||||||
|
static void setBorderEnabled(bool value); // Establece si se ha de ver el borde en el modo ventana
|
||||||
|
void toggleBorder(); // Cambia entre borde visible y no visible
|
||||||
|
void toggleShaders(); // Cambia el estado de los shaders
|
||||||
|
void show(); // Muestra la ventana
|
||||||
|
void hide(); // Oculta la ventana
|
||||||
|
void setRendererSurface(const std::shared_ptr<Surface>& surface = nullptr); // Establece el renderizador para las surfaces
|
||||||
|
void nextPalette(); // Cambia la paleta
|
||||||
|
void previousPalette(); // Cambia la paleta
|
||||||
|
void setPalete(); // Establece la paleta
|
||||||
|
void setNotificationsEnabled(bool value); // Establece la visibilidad de las notificaciones
|
||||||
|
void toggleDebugInfo(); // Activa o desactiva la información de debug
|
||||||
|
|
||||||
|
// --- Getters ---
|
||||||
|
auto getRenderer() -> SDL_Renderer*;
|
||||||
|
auto getRendererSurface() -> std::shared_ptr<Surface>;
|
||||||
|
auto getBorderSurface() -> std::shared_ptr<Surface>;
|
||||||
|
[[nodiscard]] auto getText() const -> std::shared_ptr<Text> { return text_; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Constantes
|
// --- Constantes ---
|
||||||
static constexpr int WINDOWS_DECORATIONS = 35; // Decoraciones de la ventana
|
static constexpr int WINDOWS_DECORATIONS = 35; // Decoraciones de la ventana
|
||||||
|
|
||||||
struct DisplayMonitor {
|
struct DisplayMonitor {
|
||||||
@@ -38,9 +80,7 @@ class Screen {
|
|||||||
int last_value{0}; // Número de frames calculado en el último segundo.
|
int last_value{0}; // Número de frames calculado en el último segundo.
|
||||||
|
|
||||||
// Constructor para inicializar la estructura.
|
// Constructor para inicializar la estructura.
|
||||||
FPS()
|
FPS() = default;
|
||||||
|
|
||||||
= default;
|
|
||||||
|
|
||||||
// Incrementador que se llama en cada frame.
|
// Incrementador que se llama en cada frame.
|
||||||
void increment() {
|
void increment() {
|
||||||
@@ -62,7 +102,7 @@ class Screen {
|
|||||||
// [SINGLETON] Objeto privado
|
// [SINGLETON] Objeto privado
|
||||||
static Screen* screen;
|
static Screen* screen;
|
||||||
|
|
||||||
// Objetos y punteros
|
// --- Objetos y punteros ---
|
||||||
SDL_Window* window_; // Ventana de la aplicación
|
SDL_Window* window_; // Ventana de la aplicación
|
||||||
SDL_Renderer* renderer_; // El renderizador de la ventana
|
SDL_Renderer* renderer_; // El renderizador de la ventana
|
||||||
SDL_Texture* game_texture_; // Textura donde se dibuja el juego
|
SDL_Texture* game_texture_; // Textura donde se dibuja el juego
|
||||||
@@ -73,7 +113,7 @@ class Screen {
|
|||||||
std::unique_ptr<Rendering::ShaderBackend> shader_backend_; // Backend de shaders (OpenGL/Metal/Vulkan)
|
std::unique_ptr<Rendering::ShaderBackend> shader_backend_; // Backend de shaders (OpenGL/Metal/Vulkan)
|
||||||
std::shared_ptr<Text> text_; // Objeto para escribir texto en pantalla de carga
|
std::shared_ptr<Text> text_; // Objeto para escribir texto en pantalla de carga
|
||||||
|
|
||||||
// Variables
|
// --- Variables ---
|
||||||
int window_width_; // Ancho de la pantalla o ventana
|
int window_width_; // Ancho de la pantalla o ventana
|
||||||
int window_height_; // Alto de la pantalla o ventana
|
int window_height_; // Alto de la pantalla o ventana
|
||||||
SDL_FRect game_surface_dstrect_; // Coordenadas donde se va a dibujar la textura del juego sobre la pantalla o ventana
|
SDL_FRect game_surface_dstrect_; // Coordenadas donde se va a dibujar la textura del juego sobre la pantalla o ventana
|
||||||
@@ -92,130 +132,25 @@ class Screen {
|
|||||||
#else
|
#else
|
||||||
bool show_debug_info_ = false; // Indica si ha de mostrar/ocultar la información de la pantalla
|
bool show_debug_info_ = false; // Indica si ha de mostrar/ocultar la información de la pantalla
|
||||||
#endif
|
#endif
|
||||||
|
// --- Funciones ---
|
||||||
// Dibuja las notificaciones
|
void renderNotifications() const; // Dibuja las notificaciones
|
||||||
void renderNotifications() const;
|
void adjustWindowSize(); // Calcula el tamaño de la ventana
|
||||||
|
void adjustRenderLogicalSize(); // Ajusta el tamaño lógico del renderizador
|
||||||
// Calcula el tamaño de la ventana
|
void processPaletteList(); // Extrae los nombres de las paletas
|
||||||
void adjustWindowSize();
|
void surfaceToTexture(); // Copia la surface a la textura
|
||||||
|
void textureToRenderer(); // Copia la textura al renderizador
|
||||||
// Ajusta el tamaño lógico del renderizador
|
void renderOverlays(); // Renderiza todos los overlays
|
||||||
void adjustRenderLogicalSize();
|
auto findPalette(const std::string& name) -> size_t; // Localiza la paleta dentro del vector de paletas
|
||||||
|
void initShaders(); // Inicializa los shaders
|
||||||
// Extrae los nombres de las paletas
|
void loadShaders(); // Carga el contenido del archivo GLSL
|
||||||
void processPaletteList();
|
void renderInfo(); // Muestra información por pantalla
|
||||||
|
void getDisplayInfo(); // Obtiene información sobre la pantalla
|
||||||
// Copia la surface a la textura
|
auto initSDLVideo() -> bool; // Arranca SDL VIDEO y crea la ventana
|
||||||
void surfaceToTexture();
|
void createText(); // Crea el objeto de texto
|
||||||
|
|
||||||
// Copia la textura al renderizador
|
|
||||||
void textureToRenderer();
|
|
||||||
|
|
||||||
// Renderiza todos los overlays
|
|
||||||
void renderOverlays();
|
|
||||||
|
|
||||||
// Localiza la paleta dentro del vector de paletas
|
|
||||||
auto findPalette(const std::string& name) -> size_t;
|
|
||||||
|
|
||||||
void initShaders(); // Inicializa los shaders
|
|
||||||
void loadShaders(); // Carga el contenido del archivo GLSL
|
|
||||||
void renderInfo(); // Muestra información por pantalla
|
|
||||||
void getDisplayInfo(); // Obtiene información sobre la pantalla
|
|
||||||
auto initSDLVideo() -> bool; // Arranca SDL VIDEO y crea la ventana
|
|
||||||
void createText(); // Crea el objeto de texto
|
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
Screen();
|
Screen();
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~Screen();
|
~Screen();
|
||||||
|
|
||||||
public:
|
|
||||||
// [SINGLETON] Crearemos el objeto con esta función estática
|
|
||||||
static void init();
|
|
||||||
|
|
||||||
// [SINGLETON] Destruiremos el objeto con esta función estática
|
|
||||||
static void destroy();
|
|
||||||
|
|
||||||
// [SINGLETON] Con este método obtenemos el objeto y podemos trabajar con él
|
|
||||||
static auto get() -> Screen*;
|
|
||||||
|
|
||||||
// Limpia el renderer
|
|
||||||
void clearRenderer(Color color = {0x00, 0x00, 0x00});
|
|
||||||
|
|
||||||
// Limpia la game_surface_
|
|
||||||
void clearSurface(Uint8 index);
|
|
||||||
|
|
||||||
// Prepara para empezar a dibujar en la textura de juego
|
|
||||||
void start();
|
|
||||||
|
|
||||||
// Vuelca el contenido del renderizador en pantalla
|
|
||||||
void render();
|
|
||||||
|
|
||||||
// Actualiza la lógica de la clase
|
|
||||||
void update(float delta_time); // Para escenas migradas (con delta_time)
|
|
||||||
|
|
||||||
// Establece el modo de video
|
|
||||||
void setVideoMode(bool mode);
|
|
||||||
|
|
||||||
// Camibia entre pantalla completa y ventana
|
|
||||||
void toggleVideoMode();
|
|
||||||
|
|
||||||
// Alterna entre activar y desactivar el escalado entero
|
|
||||||
void toggleIntegerScale();
|
|
||||||
|
|
||||||
// Alterna entre activar y desactivar el V-Sync
|
|
||||||
void toggleVSync();
|
|
||||||
|
|
||||||
// Reduce el tamaño de la ventana
|
|
||||||
auto decWindowZoom() -> bool;
|
|
||||||
|
|
||||||
// Aumenta el tamaño de la ventana
|
|
||||||
auto incWindowZoom() -> bool;
|
|
||||||
|
|
||||||
// Cambia el color del borde
|
|
||||||
void setBorderColor(Uint8 color);
|
|
||||||
|
|
||||||
// Establece el tamaño del borde
|
|
||||||
static void setBorderWidth(int width);
|
|
||||||
|
|
||||||
// Establece el tamaño del borde
|
|
||||||
static void setBorderHeight(int height);
|
|
||||||
|
|
||||||
// Establece si se ha de ver el borde en el modo ventana
|
|
||||||
static void setBorderEnabled(bool value);
|
|
||||||
|
|
||||||
// Cambia entre borde visible y no visible
|
|
||||||
void toggleBorder();
|
|
||||||
|
|
||||||
// Cambia el estado de los shaders
|
|
||||||
void toggleShaders();
|
|
||||||
|
|
||||||
// Muestra la ventana
|
|
||||||
void show();
|
|
||||||
|
|
||||||
// Oculta la ventana
|
|
||||||
void hide();
|
|
||||||
|
|
||||||
// Establece el renderizador para las surfaces
|
|
||||||
void setRendererSurface(const std::shared_ptr<Surface>& surface = nullptr);
|
|
||||||
|
|
||||||
// Cambia la paleta
|
|
||||||
void nextPalette();
|
|
||||||
void previousPalette();
|
|
||||||
|
|
||||||
// Establece la paleta
|
|
||||||
void setPalete();
|
|
||||||
|
|
||||||
// Establece la visibilidad de las notificaciones
|
|
||||||
void setNotificationsEnabled(bool value);
|
|
||||||
|
|
||||||
// Activa o desactiva la información de debug
|
|
||||||
void toggleDebugInfo();
|
|
||||||
|
|
||||||
// Getters
|
|
||||||
auto getRenderer() -> SDL_Renderer*;
|
|
||||||
auto getRendererSurface() -> std::shared_ptr<Surface>;
|
|
||||||
auto getBorderSurface() -> std::shared_ptr<Surface>;
|
|
||||||
[[nodiscard]] auto getText() const -> std::shared_ptr<Text> { return text_; }
|
|
||||||
};
|
};
|
||||||
@@ -91,7 +91,7 @@ void Player::handleInput(float delta_time) {
|
|||||||
// Ya que se coloca el estado STANDING al cambiar de pantalla
|
// Ya que se coloca el estado STANDING al cambiar de pantalla
|
||||||
|
|
||||||
if (isOnFloor() || isOnAutoSurface()) {
|
if (isOnFloor() || isOnAutoSurface()) {
|
||||||
setState(State::JUMPING);
|
transitionToState(State::JUMPING);
|
||||||
vy_ = JUMP_VELOCITY;
|
vy_ = JUMP_VELOCITY;
|
||||||
last_grounded_position_ = static_cast<int>(y_);
|
last_grounded_position_ = static_cast<int>(y_);
|
||||||
}
|
}
|
||||||
@@ -136,7 +136,7 @@ void Player::handleState(float delta_time) {
|
|||||||
// Si no tiene suelo debajo y no está en rampa descendente -> FALLING
|
// Si no tiene suelo debajo y no está en rampa descendente -> FALLING
|
||||||
if (!isOnFloor() && !isOnAutoSurface() && !isOnDownSlope()) {
|
if (!isOnFloor() && !isOnAutoSurface() && !isOnDownSlope()) {
|
||||||
last_grounded_position_ = static_cast<int>(y_); // Guarda Y actual al SALIR de STANDING
|
last_grounded_position_ = static_cast<int>(y_); // Guarda Y actual al SALIR de STANDING
|
||||||
setState(State::FALLING); // setState() establece vx_=0, vy_=MAX_VY
|
transitionToState(State::FALLING); // setState() establece vx_=0, vy_=MAX_VY
|
||||||
playFallSound();
|
playFallSound();
|
||||||
}
|
}
|
||||||
} else if (state_ == State::JUMPING) {
|
} else if (state_ == State::JUMPING) {
|
||||||
@@ -149,12 +149,12 @@ void Player::switchBorders() {
|
|||||||
switch (border_) {
|
switch (border_) {
|
||||||
case Room::Border::TOP:
|
case Room::Border::TOP:
|
||||||
y_ = PLAY_AREA_BOTTOM - HEIGHT - TILE_SIZE;
|
y_ = PLAY_AREA_BOTTOM - HEIGHT - TILE_SIZE;
|
||||||
setState(State::STANDING);
|
transitionToState(State::STANDING);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Room::Border::BOTTOM:
|
case Room::Border::BOTTOM:
|
||||||
y_ = PLAY_AREA_TOP;
|
y_ = PLAY_AREA_TOP;
|
||||||
setState(State::STANDING);
|
transitionToState(State::STANDING);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Room::Border::RIGHT:
|
case Room::Border::RIGHT:
|
||||||
@@ -278,7 +278,7 @@ void Player::moveVerticalUp(float delta_time) {
|
|||||||
// Si hay colisión lo mueve hasta donde no colisiona
|
// Si hay colisión lo mueve hasta donde no colisiona
|
||||||
// Regla: Si está JUMPING y tropieza contra el techo -> FALLING
|
// Regla: Si está JUMPING y tropieza contra el techo -> FALLING
|
||||||
y_ = POS + 1;
|
y_ = POS + 1;
|
||||||
setState(State::FALLING);
|
transitionToState(State::FALLING);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -305,7 +305,7 @@ void Player::moveVerticalDown(float delta_time) {
|
|||||||
is_alive_ = false; // Muere si cae más de 32 píxeles
|
is_alive_ = false; // Muere si cae más de 32 píxeles
|
||||||
}
|
}
|
||||||
|
|
||||||
setState(State::STANDING);
|
transitionToState(State::STANDING);
|
||||||
last_grounded_position_ = static_cast<int>(y_); // Actualizar AL ENTRAR en STANDING
|
last_grounded_position_ = static_cast<int>(y_); // Actualizar AL ENTRAR en STANDING
|
||||||
// Deja de estar enganchado a la superficie automatica
|
// Deja de estar enganchado a la superficie automatica
|
||||||
auto_movement_ = false;
|
auto_movement_ = false;
|
||||||
@@ -329,7 +329,7 @@ void Player::moveVerticalDown(float delta_time) {
|
|||||||
is_alive_ = false; // Muere si cae más de 32 píxeles
|
is_alive_ = false; // Muere si cae más de 32 píxeles
|
||||||
}
|
}
|
||||||
|
|
||||||
setState(State::STANDING);
|
transitionToState(State::STANDING);
|
||||||
last_grounded_position_ = static_cast<int>(y_); // Actualizar AL ENTRAR en STANDING
|
last_grounded_position_ = static_cast<int>(y_); // Actualizar AL ENTRAR en STANDING
|
||||||
} else {
|
} else {
|
||||||
// No está saltando y no hay colisón con una rampa
|
// No está saltando y no hay colisón con una rampa
|
||||||
@@ -358,7 +358,7 @@ void Player::move(float delta_time) {
|
|||||||
|
|
||||||
// Si ha salido del suelo, el jugador cae
|
// Si ha salido del suelo, el jugador cae
|
||||||
if (state_ == State::STANDING && !isOnFloor()) {
|
if (state_ == State::STANDING && !isOnFloor()) {
|
||||||
setState(State::FALLING);
|
transitionToState(State::FALLING);
|
||||||
auto_movement_ = false;
|
auto_movement_ = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -392,7 +392,7 @@ void Player::handleJumpEnd() {
|
|||||||
// Si el jugador vuelve EXACTAMENTE a la altura inicial, debe CONTINUAR en JUMPING
|
// Si el jugador vuelve EXACTAMENTE a la altura inicial, debe CONTINUAR en JUMPING
|
||||||
// Solo cuando la SUPERA (desciende más allá) cambia a FALLING
|
// Solo cuando la SUPERA (desciende más allá) cambia a FALLING
|
||||||
if (state_ == State::JUMPING && vy_ > 0.0F && static_cast<int>(y_) > last_grounded_position_) {
|
if (state_ == State::JUMPING && vy_ > 0.0F && static_cast<int>(y_) > last_grounded_position_) {
|
||||||
setState(State::FALLING);
|
transitionToState(State::FALLING);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -551,7 +551,7 @@ void Player::updateFeet() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Cambia el estado del jugador
|
// Cambia el estado del jugador
|
||||||
void Player::setState(State value) {
|
void Player::transitionToState(State value) {
|
||||||
previous_state_ = state_;
|
previous_state_ = state_;
|
||||||
state_ = value;
|
state_ = value;
|
||||||
|
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ class Player {
|
|||||||
// --- Funciones ---
|
// --- Funciones ---
|
||||||
void render(); // Pinta el enemigo en pantalla
|
void render(); // Pinta el enemigo en pantalla
|
||||||
void update(float delta_time); // Actualiza las variables del objeto
|
void update(float delta_time); // Actualiza las variables del objeto
|
||||||
[[nodiscard]] auto getOnBorder() const -> bool { return is_on_border_; } // Indica si el jugador esta en uno de los cuatro bordes de la pantalla
|
[[nodiscard]] auto isOnBorder() const -> bool { return is_on_border_; } // Indica si el jugador esta en uno de los cuatro bordes de la pantalla
|
||||||
[[nodiscard]] auto getBorder() const -> Room::Border { return border_; } // Indica en cual de los cuatro bordes se encuentra
|
[[nodiscard]] auto getBorder() const -> Room::Border { return border_; } // Indica en cual de los cuatro bordes se encuentra
|
||||||
void switchBorders(); // Cambia al jugador de un borde al opuesto. Util para el cambio de pantalla
|
void switchBorders(); // Cambia al jugador de un borde al opuesto. Util para el cambio de pantalla
|
||||||
auto getRect() -> SDL_FRect { return {x_, y_, WIDTH, HEIGHT}; } // Obtiene el rectangulo que delimita al jugador
|
auto getRect() -> SDL_FRect { return {x_, y_, WIDTH, HEIGHT}; } // Obtiene el rectangulo que delimita al jugador
|
||||||
@@ -137,8 +137,8 @@ class Player {
|
|||||||
void handleInput(float delta_time); // Comprueba las entradas y modifica variables
|
void handleInput(float delta_time); // Comprueba las entradas y modifica variables
|
||||||
|
|
||||||
// --- Funciones de gestión de estado ---
|
// --- Funciones de gestión de estado ---
|
||||||
void handleState(float delta_time); // Comprueba el estado del jugador y actualiza variables
|
void handleState(float delta_time); // Comprueba el estado del jugador y actualiza variables
|
||||||
void setState(State value); // Cambia el estado del jugador
|
void transitionToState(State value); // Cambia el estado del jugador
|
||||||
|
|
||||||
// --- Funciones de física ---
|
// --- Funciones de física ---
|
||||||
void applyGravity(float delta_time); // Aplica gravedad al jugador
|
void applyGravity(float delta_time); // Aplica gravedad al jugador
|
||||||
|
|||||||
@@ -307,7 +307,7 @@ auto Game::changeRoom(const std::string& room_path) -> bool {
|
|||||||
|
|
||||||
// Comprueba si el jugador esta en el borde de la pantalla
|
// Comprueba si el jugador esta en el borde de la pantalla
|
||||||
void Game::checkPlayerIsOnBorder() {
|
void Game::checkPlayerIsOnBorder() {
|
||||||
if (player_->getOnBorder()) {
|
if (player_->isOnBorder()) {
|
||||||
const std::string ROOM_NAME = room_->getRoom(player_->getBorder());
|
const std::string ROOM_NAME = room_->getRoom(player_->getBorder());
|
||||||
if (changeRoom(ROOM_NAME)) {
|
if (changeRoom(ROOM_NAME)) {
|
||||||
player_->switchBorders();
|
player_->switchBorders();
|
||||||
|
|||||||
@@ -54,17 +54,17 @@ class Logo {
|
|||||||
float state_time_ = 0.0F; // Tiempo acumulado en el estado actual
|
float state_time_ = 0.0F; // Tiempo acumulado en el estado actual
|
||||||
|
|
||||||
// --- Funciones ---
|
// --- Funciones ---
|
||||||
void update(); // Actualiza las variables
|
void update(); // Actualiza las variables
|
||||||
void render(); // Dibuja en pantalla
|
void render(); // Dibuja en pantalla
|
||||||
static void handleEvents(); // Comprueba el manejador de eventos
|
static void handleEvents(); // Comprueba el manejador de eventos
|
||||||
static void handleInput(); // Comprueba las entradas
|
static void handleInput(); // Comprueba las entradas
|
||||||
void updateJAILGAMES(float delta_time); // Gestiona el logo de JAILGAME (time-based)
|
void updateJAILGAMES(float delta_time); // Gestiona el logo de JAILGAME (time-based)
|
||||||
void updateTextureColors(); // Gestiona el color de las texturas
|
void updateTextureColors(); // Gestiona el color de las texturas
|
||||||
void updateState(float delta_time); // Actualiza el estado actual
|
void updateState(float delta_time); // Actualiza el estado actual
|
||||||
void transitionToState(State new_state); // Transiciona a un nuevo estado
|
void transitionToState(State new_state); // Transiciona a un nuevo estado
|
||||||
[[nodiscard]] auto getColorIndex(float progress) const -> int; // Calcula el índice de color según el progreso (0.0-1.0)
|
[[nodiscard]] auto getColorIndex(float progress) const -> int; // Calcula el índice de color según el progreso (0.0-1.0)
|
||||||
[[nodiscard]] auto allJailgamesLinesInPosition() const -> bool; // Verifica si todas las líneas están en su posición destino
|
[[nodiscard]] auto allJailgamesLinesInPosition() const -> bool; // Verifica si todas las líneas están en su posición destino
|
||||||
static void endSection(); // Termina la sección
|
static void endSection(); // Termina la sección
|
||||||
void initColors(); // Inicializa el vector de colores
|
void initColors(); // Inicializa el vector de colores
|
||||||
void initSprites(); // Crea los sprites de cada linea
|
void initSprites(); // Crea los sprites de cada linea
|
||||||
};
|
};
|
||||||
Reference in New Issue
Block a user