#pragma once #include // for Uint32 #include // for shared_ptr #include // for string #include // for vector class Room; // lines 14-14 class Scoreboard; struct ScoreboardData; class Demo { private: // Objetos y punteros std::shared_ptr room_; // Objeto encargado de gestionar cada habitación del juego std::shared_ptr scoreboard_; // Objeto encargado de gestionar el marcador // Variables Uint32 ticks_; // Contador de ticks para ajustar la velocidad del programa std::string current_room_; // Fichero de la habitación actual std::shared_ptr board_; // Estructura con los datos del marcador int counter_; // Contador para el modo demo int room_time_; // Tiempo que se muestra cada habitacion int room_index_; // 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 checkEvents(); // Comprueba las entradas void checkInput(); // Escribe el nombre de la pantalla void renderRoomName(); // Cambia de habitación bool changeRoom(const std::string &file); // Comprueba si se ha de cambiar de habitación void checkRoomChange(); // Pone el color del marcador en función del color del borde de la habitación void setScoreBoardColor(); public: // Constructor Demo(); // Destructor ~Demo(); // Bucle para el juego void run(); };