#pragma once #include #include "common/animatedsprite.h" #include "common/asset.h" #include "common/debug.h" #include "common/input.h" #include "common/screen.h" #include "common/sprite.h" #include "common/text.h" #include "common/utils.h" #include "const.h" #include "item_tracker.h" #include "room_tracker.h" #include "room.h" #include "scoreboard.h" #ifndef DEMO_H #define DEMO_H class Demo { private: // Objetos y punteros SDL_Renderer *renderer; // El renderizador de la ventana SDL_Event *eventHandler; // Manejador de eventos Screen *screen; // Objeto encargado de manejar el renderizador Room *room; // Objeto encargado de gestionar cada habitación del juego Asset *asset; // Objeto con la ruta a todos los ficheros de recursos Text *text; // Objeto para los textos del juego ScoreBoard *scoreboard; // Objeto encargado de gestionar el marcador ItemTracker *itemTracker; // Lleva el control de los objetos recogidos Debug *debug; // Objeto para gestionar la información de debug // Variables Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa section_t section; // Seccion actual dentro del juego std::string currentRoom; // Fichero de la habitación actual board_t board; // Estructura con los datos del marcador int counter; // Contador para el modo demo int roomIndex; // Indice para el vector de habitaciones std::vector rooms; // Listado con los mapas de la demo // Actualiza el juego, las variables, comprueba la entrada, etc. void update(); // Pinta los objetos en pantalla void render(); // Comprueba los eventos de la cola void checkEventHandler(); // Escribe el nombre de la pantalla void renderRoomName(); // Recarga todas las texturas void reLoadTextures(); // Cambia de habitación bool changeRoom(std::string file); // Comprueba si se ha de cambiar de habitación void checkRoomChange(); public: // Constructor Demo(SDL_Renderer *renderer, Screen *screen, Asset *asset, Debug *debug); // Destructor ~Demo(); // Bucle para el juego section_t run(); }; #endif