sdl2dll
Loading...
Searching...
No Matches
sdl_credits.h
1/*
2 * Clases para manejar un créditos en SDL2
3 */
4#ifndef _SDL_CREDITS
5#define _SDL_CREDITS
6
7#define EXPORT __declspec(dllexport)
8
9#include <SDL.h>
10#include <string>
11#include <vector>
12#include "sdl_game.h"
13#include "sdl_rect.h"
14#include "sdl_font.h"
15
16namespace sdl {
17
23protected:
27 std::string line;
33 void Move(Point& p);
34
35public:
43 EXPORT CreditsLine(Font& f, const std::string c, int size) : font(f), textsize(size), line(c) {}
51 EXPORT void Render(Renderer& renderer, Point& pos, Color fg) {
53 }
54};
55
60class Credits : public Game{
61protected:
64 std::string title;
67 std::vector<CreditsLine> line;
70 int retval;
72public:
80 EXPORT Credits(Window& win, Renderer& ren, const std::string& f) : Game(win, ren),
81 font(ren, f), title(""), titleColor("#ffff00ff"), textColor("#ffff00ff"), retval(0) {}
88 EXPORT void SetTitlePos(int x, int y) { titlePos = Point(x, y); }
94 EXPORT void SetTitlePos(sdl::Point p) { titlePos = Point(p); }
101 EXPORT void SetTextPos(int x, int y) { textPos = Point(x, y); }
107 EXPORT void SetTextPos(sdl::Point p) { textPos = Point(p); }
113 EXPORT void SetTitle(const std::string& t) { title = t; }
119 EXPORT void SetTitleColor(const Color& tc) { titleColor = tc; }
125 EXPORT void SetTextColor(const Color& tc) { textColor = tc; }
132 EXPORT void AddLine(const std::string& txt, int size=17);
138 EXPORT void Clear(Color color=Color("#000000ff"));
144 EXPORT Font& GetFont() { return font; }
150 EXPORT void SetTextSize(int pt);
154 EXPORT void Init() { Clear(); }
160 EXPORT void Update() {}
164 EXPORT void Events() {
165 SDL_Keysym key;
166
167 while(event.Poll()) {
168 if(event.Type() == SDL_KEYUP) {
169 key = event.Key().keysym;
170 if(key.sym == SDLK_ESCAPE) { retval= -1; }
171 }
172 else if(event.Type() == SDL_MOUSEBUTTONDOWN) { retval= -1; }
173 }
174 }
178 EXPORT void Render() {
179 font.SetOutline(1);
180 font.SetSize(55);
182
183 font.SetOutline(0);
185 for(size_t i=0; i<line.size(); i++) {
186 line[i].Render(renderer, textPos, textColor);
187 textPos.Y()+=textsize+10;
188 }
189 SDL_RenderPresent(renderer);
190 }
195 EXPORT char Run() {
196 Init();
197 Render();
198 do {
199 Events();
200 } while(!retval);
201 return retval;
202 }
203};
204
205} // namespace sdl
206#endif // _SDL_CREDITS
207
208
Encapsula un color.
Definition sdl_color.h:18
Clase para manejar una pantalla de créditos.
Definition sdl_credits.h:60
EXPORT void Clear(Color color=Color("#000000ff"))
Borra el contenido de la ventana usando el color indicado.
Definition sdl_credits.cpp:13
int textsize
Definition sdl_credits.h:63
Font font
Definition sdl_credits.h:62
EXPORT void Update()
Actualiza el contenido de la ventana.
Definition sdl_credits.h:160
EXPORT void SetTitle(const std::string &t)
Asigna el texto del título.
Definition sdl_credits.h:113
EXPORT char Run()
Ejecuta el bucle de juego de la ventana de créditos.
Definition sdl_credits.h:195
Color titleColor
Definition sdl_credits.h:68
EXPORT void SetTextPos(int x, int y)
Establece la posición de la primera línea de texto.
Definition sdl_credits.h:101
EXPORT void SetTextPos(sdl::Point p)
Establece la posición de la primera línea de texto.
Definition sdl_credits.h:107
EXPORT void AddLine(const std::string &txt, int size=17)
Añade una línea de texto de créditos.
Definition sdl_credits.cpp:9
EXPORT Credits(Window &win, Renderer &ren, const std::string &f)
Constructor.
Definition sdl_credits.h:80
std::string title
Definition sdl_credits.h:64
std::vector< CreditsLine > line
Definition sdl_credits.h:67
EXPORT void SetTitlePos(sdl::Point p)
Establece la posición del título.
Definition sdl_credits.h:94
EXPORT Font & GetFont()
Obtiene una referencia a la fuente usada para el texto.
Definition sdl_credits.h:144
EXPORT void Init()
Inicializa el objeto.
Definition sdl_credits.h:154
Point titlePos
Definition sdl_credits.h:65
EXPORT void SetTitleColor(const Color &tc)
Asigna el color para el texto del título.
Definition sdl_credits.h:119
int retval
Definition sdl_credits.h:70
EXPORT void SetTextSize(int pt)
Asigna el tamaño de la fuente a utilizar.
Definition sdl_credits.cpp:4
EXPORT void SetTextColor(const Color &tc)
Asigna el color para el texto de las líneas.
Definition sdl_credits.h:125
EXPORT void SetTitlePos(int x, int y)
Establece la posición del título.
Definition sdl_credits.h:88
Point textPos
Definition sdl_credits.h:66
Color textColor
Definition sdl_credits.h:69
EXPORT void Events()
Procesa los eventos que lleguen a la aplicación mientras se muestran los créditos.
Definition sdl_credits.h:164
EXPORT void Render()
Muestra el contenido de la ventana de créditos.
Definition sdl_credits.h:178
Clase para manejar una línea de texto de créditos.
Definition sdl_credits.h:22
int textsize
Definition sdl_credits.h:26
void Move(Point &p)
Cambia la posición de la línea de texto.
Rect area
Definition sdl_credits.h:24
std::string line
Definition sdl_credits.h:27
EXPORT void Render(Renderer &renderer, Point &pos, Color fg)
Muestra la línea en pantalla.
Definition sdl_credits.h:51
Font & font
Definition sdl_credits.h:25
EXPORT CreditsLine(Font &f, const std::string c, int size)
Constructor.
Definition sdl_credits.h:43
EXPORT Uint32 Type()
Obtiene el tipo de evento.
Definition sdl_event.h:38
EXPORT bool Poll()
Recupera un evento de la cola de eventos pendientes.
Definition sdl_event.h:32
Clase para encapsular una fuente de caracteres SDL.
Definition sdl_font.h:24
EXPORT void RenderUTF8_Blended(const std::string &text, int x, int y, Color fg)
Muestra un texto en pantalla.
Definition sdl_font.cpp:13
EXPORT void SetOutline(int outline)
Establece el contorno actual de una fuente.
Definition sdl_font.h:65
EXPORT void SetSize(int ptsize)
Establece el tamaño de la fuente.
Definition sdl_font.h:59
Clase base virtual pura para encapsular un juego.
Definition sdl_game.h:44
Renderer & renderer
Definition sdl_game.h:47
Event event
Definition sdl_game.h:49
Clase para manipular puntos con coordenadas enteras.
Definition sdl_point.h:20
EXPORT int & Y()
Obtiene una referencia a la coordenada y del punto.
Definition sdl_point.h:63
Clase para manipular rectángulos con coordenadas enteras.
Definition sdl_rect.h:21
Clase para manipular un contexto de renderizado.
Definition sdl_renderer.h:29
Clase que encapsula una ventana SDL2.
Definition sdl_window.h:21
Espacio con nombre para el wrapper de SDL2.
Definition sdl_music.h:14