#include <SDL.h>
#include <SDL_ttf.h>
#include <SDL_image.h>
#include <tinyxml.h>
#include <map>
#include <vector>
#include <string>
#include <cstdlib>
Prostory jmen | |
namespace | Color |
Třídy | |
class | Fonts |
Písmo. ... | |
class | Surface |
Počítání referencí pro SDL_Surface. ... | |
class | Animation |
Animace jednoho jevu, jako posloupnost obrázků. ... | |
Funkce | |
void | window_init (SDL_Surface **pWindow, int win_w, int win_h, const char *caption) |
Inicializace SDL a TTF, vytvoří okno o zadaných rozměrech a záhlaví. | |
SDL_Surface * | get_text (TTF_Font *font, const char *str, SDL_Color color) |
Vytvoření surface s textem. | |
SDL_Surface * | get_multiline_text (TTF_Font *font, const char *str, SDL_Color color) |
Vytvoření víceřádkového surface s textem. | |
SDL_Surface * | create_surface (Uint16 w, Uint16 h, SDL_Color color) |
Vytvoření surface. | |
void | set_transparent_color (SDL_Surface *sur, SDL_Color color) |
Nastavení průhledné barvy pro surface. | |
void | set_transparency (SDL_Surface *sur, Uint8 alpha) |
Nastavení průhlednosti surface. | |
SDL_Surface * | create_transparent_surface (Uint16 w, Uint16 h, bool transparent=false) |
Vytvoření surface s průhlednou barvou (volitelně celé poloprůhledně). | |
void | draw_surface (int x, int y, SDL_Surface *surface_src, SDL_Surface *surface_dst) |
Vykreslení surface_src do surface_dst. | |
void | draw_center_surface (SDL_Surface *surface_src, SDL_Surface *surface_dst) |
Vykreslení surface_src do surface_dst vycentrovaně. | |
void | clear_surface (SDL_Color color, SDL_Surface *surface) |
Vybarvení místa v surface_dst, na kterém by byl surface_src. | |
void | draw_pixel (SDL_Surface *surface, int x, int y, SDL_Color color) |
Nakreslení pixelu do surface. | |
void | draw_line (SDL_Surface *surface, int x1, int y1, int x2, int y2, SDL_Color color) |
Nakreslení úsečky. | |
Uint32 | SDL_fps (Uint32 last, Uint32 fps) |
Frames per second zdrží program, aby nevykresloval zbytečně často. | |
Uint8 | get_event (SDLKey &key) |
Vybere z fronty událost, když je prázdná, hned pokračuje. | |
Uint8 | wait_event (SDLKey &key) |
Vybere z fronty událost, když je prázdná, počká. | |
double | SDL_Rand () |
Pseudonáhodné číslo v intervalu [0,1]. |
..
void clear_surface | ( | SDL_Color | color, | |
SDL_Surface * | surface | |||
) |
Vybarvení místa v surface_dst, na kterém by byl surface_src.
color | barva vyplnění | |
surface | cíl |
SDL_Surface* create_surface | ( | Uint16 | w, | |
Uint16 | h, | |||
SDL_Color | color | |||
) |
Vytvoření surface.
w | šířka surface | |
h | výška surface | |
color | barva pro vyplnění |
SDL_Surface* create_transparent_surface | ( | Uint16 | w, | |
Uint16 | h, | |||
bool | transparent | |||
) |
Vytvoření surface s průhlednou barvou (volitelně celé poloprůhledně).
w | šířka surface | |
h | výška surface | |
transparent | pokud TRUE, bude nastavena poloprůhlednost surface |
void draw_center_surface | ( | SDL_Surface * | surface_src, | |
SDL_Surface * | surface_dst | |||
) |
Vykreslení surface_src do surface_dst vycentrovaně.
surface_src | zdroj | |
surface_dst | cíl |
void draw_line | ( | SDL_Surface * | surface, | |
int | x1, | |||
int | y1, | |||
int | x2, | |||
int | y2, | |||
SDL_Color | color | |||
) |
Nakreslení úsečky.
surface | cíl | |
x1 | počáteční souřadnice úsečky | |
y1 | počáteční souřadnice | |
x2 | koncové souřadnice úsečky | |
y2 | koncové souřadnice úsečky | |
color | barva úsečky |
void draw_pixel | ( | SDL_Surface * | surface, | |
int | x, | |||
int | y, | |||
SDL_Color | color | |||
) |
Nakreslení pixelu do surface.
surface | cíl | |
x | souřadnice vykreslovaného pixelu | |
y | souřadnice | |
color | barva pixelu |
void draw_surface | ( | int | x, | |
int | y, | |||
SDL_Surface * | surface_src, | |||
SDL_Surface * | surface_dst | |||
) |
Vykreslení surface_src do surface_dst.
x | souřadnice pro vykreslení | |
y | souřadnice pro vykreslení | |
surface_src | zdroj | |
surface_dst | cíl |
Uint8 get_event | ( | SDLKey & | key | ) |
Vybere z fronty událost, když je prázdná, hned pokračuje.
Pokud narazí na nějakou zajímavou událost, vrací její typ, když je to událost doplněná o klávesu, změní ji.
key | vrácená hodnota klávesy |
SDL_Surface* get_multiline_text | ( | TTF_Font * | font, | |
const char * | str, | |||
SDL_Color | color | |||
) |
Vytvoření víceřádkového surface s textem.
Vytvoří surface s textem pomocí get_text(), pokud text obsahuje newline (10) vytvoří se nová řádka.
font | pointer na písmo, kterým se má psát | |
str | text, který se má vypsat (může obsahovat newline) | |
color | barva textu |
SDL_Surface* get_text | ( | TTF_Font * | font, | |
const char * | str, | |||
SDL_Color | color | |||
) |
Vytvoření surface s textem.
font | pointer na písmo, kterým se má psát | |
str | text, který se má vypsat | |
color | barva textu |
Uint32 SDL_fps | ( | Uint32 | last, | |
Uint32 | fps | |||
) |
Frames per second zdrží program, aby nevykresloval zbytečně často.
Počká od času last tak dlouho abych vykresloval fps obrázků za sekundu vráti aktualní čas ukončení teto fce poznamka: muze špatně fungovat pokud aplikace běží déle než ~49.7 dní kvůli přetečení Uint32
last | čas posedního volání této fce | |
fps | počet framu za sekundu kterých chceme docílit |
double SDL_Rand | ( | ) |
Pseudonáhodné číslo v intervalu [0,1].
void set_transparency | ( | SDL_Surface * | sur, | |
Uint8 | alpha | |||
) |
Nastavení průhlednosti surface.
sur | surface, kterému chceme nastavit průhlednost | |
alpha | míra průhlednosti (0 - průhledné, 255 - neprůhledné) |
void set_transparent_color | ( | SDL_Surface * | sur, | |
SDL_Color | color | |||
) |
Nastavení průhledné barvy pro surface.
sur | surface, kterému chceme nastavit průhlednou barvu | |
color | průhledná barva |
Uint8 wait_event | ( | SDLKey & | key | ) |
Vybere z fronty událost, když je prázdná, počká.
Čeká, na zajímavou událost.
key | vrácená hodnota klávesy |
void window_init | ( | SDL_Surface ** | pWindow, | |
int | win_w, | |||
int | win_h, | |||
const char * | caption | |||
) |
Inicializace SDL a TTF, vytvoří okno o zadaných rozměrech a záhlaví.
Inicializuje SDL, nastavuje video mode a velikost okna, inicializuje TTF. Při úspěchu nastavuje zrušení SDL a TTF při ukončení programu. Při neúspěchu vypisuje chybovou hlášku a ukončí program.
exit, atexit
pWindow | pointer na pointer na SDL_Surface okna | |
win_w | šířka okna | |
win_h | výška okna | |
caption | titulek okna |