Files
jdd_opendingux/source/demo.h

79 lines
2.1 KiB
C++

#pragma once
#include <SDL2/SDL.h>
#include "const.h"
#include "item_tracker.h"
#include "room_tracker.h"
#include "room.h"
#include "scoreboard.h"
#include "utils/animatedsprite.h"
#include "utils/asset.h"
#include "utils/debug.h"
#include "utils/input.h"
#include "utils/screen.h"
#include "utils/sprite.h"
#include "utils/text.h"
#include "utils/utils.h"
#ifndef DEMO_H
#define DEMO_H
// Demo
class Demo
{
private:
// Objetos
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<std::string> 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