From 45731c82949bab04871c6f9d06824c48fa320c9a Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Mon, 12 Aug 2024 07:57:59 +0200 Subject: [PATCH] =?UTF-8?q?Afegides=20descripcions=20a=20algunes=20classes?= =?UTF-8?q?=20Eliminats=20par=C3=A1metres=20no=20necesaris=20als=20constru?= =?UTF-8?q?ctors=20de=20classes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/instructions.cpp | 2 +- source/manage_hiscore_table.cpp | 2 +- source/manage_hiscore_table.h | 9 ++++++++- source/tiledbg.cpp | 3 +-- source/tiledbg.h | 12 +++++++++--- source/title.cpp | 4 ++-- source/title.h | 20 +++++++++++++++++++- 7 files changed, 41 insertions(+), 11 deletions(-) diff --git a/source/instructions.cpp b/source/instructions.cpp index f326636..0149ff3 100644 --- a/source/instructions.cpp +++ b/source/instructions.cpp @@ -16,7 +16,7 @@ Instructions::Instructions(SDL_Renderer *renderer, Screen *screen, Asset *asset, // Crea objetos eventHandler = new SDL_Event(); text = new Text(asset->get("smb2.gif"), asset->get("smb2.txt"), renderer); - tiledbg = new Tiledbg(renderer, screen, asset, {0, 0, param->gameWidth, param->gameHeight}, TILED_MODE_STATIC); + tiledbg = new Tiledbg(renderer, asset, {0, 0, param->gameWidth, param->gameHeight}, TILED_MODE_STATIC); fade = new Fade(renderer, param); // Crea un backbuffer para el renderizador diff --git a/source/manage_hiscore_table.cpp b/source/manage_hiscore_table.cpp index 61d43b0..096dd4b 100644 --- a/source/manage_hiscore_table.cpp +++ b/source/manage_hiscore_table.cpp @@ -11,7 +11,7 @@ ManageHiScoreTable::~ManageHiScoreTable() { } -// Borra toda la tabla +// Resetea la tabla a los valores por defecto void ManageHiScoreTable::clear() { // Limpia la tabla diff --git a/source/manage_hiscore_table.h b/source/manage_hiscore_table.h index 679ac7e..6bc36cf 100644 --- a/source/manage_hiscore_table.h +++ b/source/manage_hiscore_table.h @@ -3,6 +3,13 @@ #include #include "common/utils.h" +/* +Esta clase sirve para añadir elementos hiScoreEntry_r a un vector (tabla), de manera +que la tabla siempre está ordenada. Además también tiene un método para dejar la tabla +con sus valores iniciales +*/ + + // Clase ManageHiScoreTable class ManageHiScoreTable { @@ -20,7 +27,7 @@ public: // Destructor ~ManageHiScoreTable(); - // Borra toda la tabla + // Resetea la tabla a los valores por defecto void clear(); // Añade un elemento a la tabla diff --git a/source/tiledbg.cpp b/source/tiledbg.cpp index 3265038..0c6f73f 100644 --- a/source/tiledbg.cpp +++ b/source/tiledbg.cpp @@ -1,11 +1,10 @@ #include "tiledbg.h" // Constructor -Tiledbg::Tiledbg(SDL_Renderer *renderer, Screen *screen, Asset *asset, SDL_Rect pos, int mode) +Tiledbg::Tiledbg(SDL_Renderer *renderer, Asset *asset, SDL_Rect pos, int mode) { // Copia los punteros this->renderer = renderer; - this->screen = screen; this->asset = asset; this->pos = pos; this->mode = mode; diff --git a/source/tiledbg.h b/source/tiledbg.h index 5edc02a..f43e61f 100644 --- a/source/tiledbg.h +++ b/source/tiledbg.h @@ -6,21 +6,27 @@ #include "common/sprite.h" #include "const.h" +// Modos de funcionamiento para el tileado de fondo #define TILED_MODE_CIRCLE 0 #define TILED_MODE_DIAGONAL 1 #define TILED_MODE_RANDOM 2 #define TILED_MODE_STATIC 3 +/* +Esta clase dibuja un tileado de fondo. Para ello se sirve de una textura "canvas", que rellena con los tiles. +El rectangulo "window" recorre la textura de diferentes formas para generar el efecto de movimiento de la +textura en pantalla +*/ + // Clase Tiledbg class Tiledbg { private: // Objetos y punteros SDL_Renderer *renderer; // El renderizador de la ventana - Screen *screen; // Objeto encargado de dibujar en pantalla Asset *asset; // Objeto que gestiona todos los ficheros de recursos SDL_Rect window; // Ventana visible para la textura de fondo del titulo - SDL_Texture *canvas; // Textura dibujar el fondo del titulo + SDL_Texture *canvas; // Textura donde dibujar el fondo formado por tiles // Variables SDL_Rect pos; // Posición y tamaña del mosaico @@ -38,7 +44,7 @@ private: public: // Constructor - Tiledbg(SDL_Renderer *renderer, Screen *screen, Asset *asset, SDL_Rect pos, int mode); + Tiledbg(SDL_Renderer *renderer, Asset *asset, SDL_Rect pos, int mode); // Destructor ~Tiledbg(); diff --git a/source/title.cpp b/source/title.cpp index 3ca17a4..4c7e810 100644 --- a/source/title.cpp +++ b/source/title.cpp @@ -26,7 +26,7 @@ Title::Title(SDL_Renderer *renderer, Screen *screen, Input *input, Asset *asset, miniLogoTexture = new Texture(renderer, asset->get("logo_jailgames_mini.png")); miniLogoSprite = new Sprite(GAMECANVAS_CENTER_X - miniLogoTexture->getWidth() / 2, 0, miniLogoTexture->getWidth(), miniLogoTexture->getHeight(), miniLogoTexture); - tiledbg = new Tiledbg(renderer, screen, asset, {0, 0, param->gameWidth, param->gameHeight}, TILED_MODE_RANDOM); + tiledbg = new Tiledbg(renderer, asset, {0, 0, param->gameWidth, param->gameHeight}, TILED_MODE_RANDOM); gameLogo = new GameLogo(renderer, screen, asset, param, GAMECANVAS_CENTER_X, param->titleCC); gameLogo->enable(); @@ -244,7 +244,7 @@ void Title::checkInput() const int index = input->checkAnyButtonPressed(); if (index) { - if (section->subsection == SUBSECTION_TITLE_2) + if (section->subsection == SUBSECTION_TITLE_2 || ALLOW_TITLE_ANIMATION_SKIP) {// No se puede empezar a jugar durante la animación del titulo fade->activate(); postFade = index; diff --git a/source/title.h b/source/title.h index 58f9b25..b01d0eb 100644 --- a/source/title.h +++ b/source/title.h @@ -24,6 +24,24 @@ // Textos #define TEXT_COPYRIGHT "@2020,2024 JailDesigner" +// Parámetros +#define ALLOW_TITLE_ANIMATION_SKIP false + +/* +Esta clase gestiona un estado del programa. Se encarga de la parte del titulo o menu +que sirve para empezar a jugar. Utiliza otras clases para: + - Mostrar el logo del juego + - Dibujar el tileado de fondo + - Redifinir los botones de los mandos de juego + +Esta clase tiene dos estados: + - El titulo está animandose, con el fondo estático + - El titulo ya está en su sitio y el fondo se está animando + +Por razones de diseño, no se permite saltarse la animación del titulo, aunque es +configurable mediante un define +*/ + // Clase Title class Title { @@ -38,9 +56,9 @@ private: section_t *section; // Indicador para el bucle del titulo Tiledbg *tiledbg; // Objeto para dibujar el mosaico animado de fondo GameLogo *gameLogo; // Objeto para dibujar el logo con el título del juego + DefineButtons *defineButtons; // Objeto para definir los botones del joystic Texture *miniLogoTexture; // Textura con el logo de JailGames mini Sprite *miniLogoSprite; // Sprite con el logo de JailGames mini - DefineButtons *defineButtons; // Objeto para definir los botones del joystic Text *text1; // Objeto de texto para poder escribir textos en pantalla Text *text2; // Objeto de texto para poder escribir textos en pantalla