#include <iostream>
#include <vector>
#include <map>
#include <string>
#include <utility>
#include <constants.h>
#include "sdl.h"
#include "agar.h"
#include "tixml.h"
Prostory jmen | |
namespace | Color |
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. | |
static int | text_width (TTF_Font *font, const char *str) |
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) |
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. | |
static bool | interesting_event_ (SDL_Event event, SDLKey &key) |
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]. | |
Proměnné | |
const SDL_Color | Color::transparent = {255,0,255} |
const SDL_Color | Color::white = {255,255,255} |
const SDL_Color | Color::yellow = {255,255,0} |
const SDL_Color | Color::aqua = {0,255,255} |
const SDL_Color | Color::red = {255,0,0} |
const SDL_Color | Color::lime = {0,255,0} |
const SDL_Color | Color::blue = {0,0,255} |
const SDL_Color | Color::black = {0,0,0} |
const SDL_Color | Color::green = {0,128,0} |
const SDL_Color | Color::maroon = {128,0,0} |
const SDL_Color | Color::olive = {128,128,0} |
const SDL_Color | Color::purple = {128,0,128} |
const SDL_Color | Color::gray = {128,128,128} |
const SDL_Color | Color::navy = {0,0,128} |
const SDL_Color | Color::teal = {0,128,128} |
const SDL_Color | Color::silver = {192,192,192} |
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 |
static bool interesting_event_ | ( | SDL_Event | event, | |
SDLKey & | key | |||
) | [static] |
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 |
static int text_width | ( | TTF_Font * | font, | |
const char * | str | |||
) | [static] |
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 |