treballant en les novetats de LoadingScreen

This commit is contained in:
2025-10-26 21:44:16 +01:00
parent 96506988b6
commit 0c87612a17
4 changed files with 211 additions and 117 deletions

View File

@@ -13,12 +13,12 @@
#include <memory> // Para make_unique, unique_ptr
#include <string> // Para operator+, allocator, char_traits
#include "core/audio/audio.hpp" // Para Audio
#include "core/input/input.hpp" // Para Input, InputAction
#include "core/rendering/screen.hpp" // Para Screen
#include "core/resources/asset.hpp" // Para Asset, AssetType
#include "core/resources/resource.hpp" // Para Resource
#include "core/system/debug.hpp" // Para Debug
#include "external/jail_audio.h" // Para JA_SetMusicVolume, JA_SetSoundV...
#include "game/gameplay/cheevos.hpp" // Para Cheevos
#include "game/options.hpp" // Para Options, options, OptionsVideo
#include "game/scenes/credits.hpp" // Para Credits
@@ -62,7 +62,7 @@ Director::Director(int argc, const char* argv[]) {
Options::loadFromFile(Asset::get()->get("config.txt"));
// Inicializa JailAudio
initJailAudio();
Audio::init();
// Crea los objetos
Screen::init();
@@ -86,6 +86,7 @@ Director::~Director() {
Input::destroy();
Notifier::destroy();
Resource::destroy();
Audio::destroy();
Screen::destroy();
Asset::destroy();
@@ -237,22 +238,6 @@ void Director::initInput() {
}
}
// Inicializa JailAudio
void Director::initJailAudio() {
if (!SDL_Init(SDL_INIT_AUDIO)) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL_AUDIO could not initialize! SDL Error: %s", SDL_GetError());
} else {
JA_Init(48000, SDL_AUDIO_S16LE, 2);
if (Options::audio.enabled) {
JA_SetMusicVolume(Options::audio.music.volume);
JA_SetSoundVolume(Options::audio.sound.volume);
} else {
JA_SetMusicVolume(0);
JA_SetSoundVolume(0);
}
}
}
// Crea el indice de ficheros
bool Director::setFileList() {
#ifdef MACOS_BUNDLE
@@ -537,7 +522,7 @@ void Director::runGameOver() {
// Ejecuta la seccion de juego donde se juega
void Director::runGame() {
JA_StopMusic();
Audio::get()->stopMusic();
auto game = std::make_unique<Game>(GameMode::GAME);
game->run();
}

View File

@@ -5,60 +5,28 @@
#include <string> // Para string
class Director {
private:
// Variables
std::string executable_path_; // Path del ejecutable
std::string system_folder_; // Carpeta del sistema donde guardar datos
// Comprueba los parametros del programa
std::string checkProgramArguments(int argc, const char* argv[]);
// Crea la carpeta del sistema donde guardar datos
void createSystemFolder(const std::string& folder);
// Inicializa jail_audio
void initJailAudio();
// Inicializa el objeto Input
void initInput();
// Crea el indice de ficheros
bool setFileList();
// Ejecuta la seccion de juego con el logo
void runLogo();
// Ejecuta la seccion de juego de la pantalla de carga
void runLoadingScreen();
// Ejecuta la seccion de juego con el titulo y los menus
void runTitle();
// Ejecuta la seccion de los creditos del juego
void runCredits();
// Ejecuta la seccion de la demo, donde se ven pantallas del juego
void runDemo();
// Ejecuta la seccion del final del juego
void runEnding();
// Ejecuta la seccion del final del juego
void runEnding2();
// Ejecuta la seccion del final de la partida
void runGameOver();
// Ejecuta la seccion de juego donde se juega
void runGame();
public:
// Constructor
Director(int argc, const char* argv[]);
Director(int argc, const char* argv[]); // Constructor
~Director(); // Destructor
int run(); // Bucle principal
// Destructor
~Director();
private:
// --- Variables ---
std::string executable_path_; // Path del ejecutable
std::string system_folder_; // Carpeta del sistema donde guardar datos
std::string checkProgramArguments(int argc, const char* argv[]); // Comprueba los parametros del programa
// Bucle principal
int run();
// --- Funciones ---
void createSystemFolder(const std::string& folder); // Crea la carpeta del sistema donde guardar datos
void initInput(); // Inicializa el objeto Input
bool setFileList(); // Crea el indice de ficheros
void runLogo(); // Ejecuta la seccion de juego con el logo
void runLoadingScreen(); // Ejecuta la seccion de juego de la pantalla de carga
void runTitle(); // Ejecuta la seccion de juego con el titulo y los menus
void runCredits(); // Ejecuta la seccion de los creditos del juego
void runDemo(); // Ejecuta la seccion de la demo, donde se ven pantallas del juego
void runEnding(); // Ejecuta la seccion del final del juego
void runEnding2(); // Ejecuta la seccion del final del juego
void runGameOver(); // Ejecuta la seccion del final de la partida
void runGame(); // Ejecuta la seccion de juego donde se juega
};