Files
jdd_opendingux/source/game.h

74 lines
1.9 KiB
C++

#pragma once
#include "ifdefs.h"
#include "const.h"
#include "utils.h"
#include "sprite.h"
#include "movingsprite.h"
#include "text.h"
#include "writer.h"
#include "menu.h"
#include "input.h"
#include "fade.h"
#include "lang.h"
#include "screen.h"
#include "asset.h"
#include "room.h"
#include "player.h"
#include "jail_audio.h"
#ifndef GAME_H
#define GAME_H
// Game
class Game
{
private:
SDL_Renderer *mRenderer; // El renderizador de la ventana
SDL_Event *mEventHandler; // Manejador de eventos
Screen *mScreen; // Objeto encargado de manejar el renderizador
Room *mRoom; // Objeto encargado de gestionar cada habitación del juego
Player *mPlayer; // Objeto con el jugador
Asset *mAsset; // Objeto con la ruta a todos los ficheros de recursos
Lang *mLang; // Objeto para gestionar los textos en diferentes idiomas
Input *mInput; // Objeto pata gestionar la entrada
Text *mText; // Objeto para los textos del juego
Fade *mFade; // Objeto para renderizar fades
LTexture *mTextureText; // Textura para la fuente de texto
Uint32 mTicks; // Contador de ticks para ajustar la velocidad del programa
Uint8 mTicksSpeed; // Velocidad a la que se repiten los bucles del programa
section_t mSection; // Seccion actual dentro del juego
// Inicializa las variables
void init();
// Carga los recursos
bool loadMedia();
// Actualiza el juego, las variables, comprueba la entrada, etc.
void update();
// Pinta los objetos en pantalla
void draw();
// Comprueba la entrada y actua
void checkInput();
// Cambia de habitación
bool changeRoom(std::string file);
// Comprueba si el jugador esta en el borde de la pantalla y actua
void checkPlayerOnBorder();
public:
// Constructor
Game(SDL_Window *window, SDL_Renderer *renderer, Asset *asset, Lang *lang, Input *input);
// Destructor
~Game();
// Bucle para el juego
section_t run();
};
#endif