sdl2dll
Loading...
Searching...
No Matches
sdl_game.h
1/*
2 * Clases para manejar juegos en SDL2
3 */
4#ifndef _SDL_GAME
5#define _SDL_GAME
6
7#define EXPORT __declspec(dllexport)
8
9#include <SDL.h>
10#include <string>
11#include <cstdlib>
12#include <ctime>
13
14#include "sdl_window.h"
15#include "sdl_renderer.h"
16#include "sdl_event.h"
17
18namespace sdl {
19
27EXPORT int random(int n);
35EXPORT float randomf(float n);
36
44class Game {
45protected:
48 Uint64 tick, tick0;
50 bool quit;
52public:
61 EXPORT Game(Window &win, Renderer &ren, int w=800, int h=600) : window(win), renderer(ren), quit(false) {
62 window.SetSize(w, h);
63 window.Center();
64 std::srand(std::time(NULL));
65 }
71 EXPORT Window &getWindow() { return window; }
77 EXPORT Renderer &getRenderer() { return renderer; }
83 EXPORT bool Quit() { return quit; }
88 EXPORT virtual void Init() {}
93 EXPORT virtual void Events() {}
99 EXPORT virtual void Update() {}
103 EXPORT virtual void Render() {}
111 EXPORT virtual char Run() {
112 Init();
113 tick0 = SDL_GetTicks64();
114 do {
115 tick = SDL_GetTicks64()-tick0;
116 tick0 = SDL_GetTicks64();
117 Events();
118 Update();
119 Render();
120 SDL_Delay(1);
121 } while(!Quit());
122 return ' ';
123 }
124};
125
126} // namespace sdl
127#endif // _SDL_GAME
Clase para encapsular un evento SDL.
Definition sdl_event.h:18
Clase base virtual pura para encapsular un juego.
Definition sdl_game.h:44
virtual EXPORT void Render()
Método virtual puro para actualizar la ventana.
Definition sdl_game.h:103
Renderer & renderer
Definition sdl_game.h:47
Uint64 tick0
Definition sdl_game.h:48
EXPORT bool Quit()
Obtiene el valor del miembro quit, true si se debe abandonar el bucle de juego.
Definition sdl_game.h:83
virtual EXPORT void Init()
Método virtual puro para la inicialización del juego.
Definition sdl_game.h:88
EXPORT Window & getWindow()
Obtiene una referencia de la ventana.
Definition sdl_game.h:71
virtual EXPORT void Update()
Método virtual puro para la actualización de los objetos del juego.
Definition sdl_game.h:99
Event event
Definition sdl_game.h:49
EXPORT Renderer & getRenderer()
Obtiene una referencia al contexto de renderizado.
Definition sdl_game.h:77
EXPORT Game(Window &win, Renderer &ren, int w=800, int h=600)
Constructor.
Definition sdl_game.h:61
virtual EXPORT char Run()
Método virtual que contiene el bucle del juego.
Definition sdl_game.h:111
Window & window
Definition sdl_game.h:46
bool quit
Definition sdl_game.h:50
virtual EXPORT void Events()
Método virtual puro para el procesamiento de eventos del juego.
Definition sdl_game.h:93
Clase para manipular un contexto de renderizado.
Definition sdl_renderer.h:29
Clase que encapsula una ventana SDL2.
Definition sdl_window.h:21
EXPORT void SetSize(int w, int h)
Asigna el tamaño de la ventana.
Definition sdl_window.h:76
EXPORT void Center()
Centra la ventana.
Definition sdl_window.h:83
Espacio con nombre para el wrapper de SDL2.
Definition sdl_music.h:14