#include <sdl.h>
Veřejné metody | |
Animation () | |
Bez inicializace. | |
Animation (TiXmlElement *el, Uint16 width, Uint16 height, const Surface &sur_src, const Surface &sur_shadow_src=0) | |
Inicializace z XML a zdrojového surface. | |
const Animation & | initialize (TiXmlElement *el, Uint16 width, Uint16 height, const Surface &sur_src, const Surface &sur_shadow_src=0) |
Inicializace z XML a zdrojového surface. | |
Animation (const Animation &anim) | |
Okopírování animace. | |
const Animation & | operator= (const Animation &anim) |
Okopírování animace. | |
void | reset () |
Nastavení prvního obrázku jako aktuální. | |
void | random () |
Nastavení náhodného obrázku jako aktuální. | |
bool | update () |
Update stavu animace (typicky nastavení dalšího framu). | |
Uint16 | run_num () const |
Počet opakování animace. | |
Uint16 | periods_to_end () const |
Počet period do konce běhu animace. | |
void | draw (SDL_Surface *window, int x, int y) const |
Vykreslení aktuálního framu. | |
Uint16 | height () const |
Výška animace. | |
Uint16 | width () const |
Šířka animace. | |
void | set_transparency (Uint8 alpha) |
Nastaví průhlednost celé animace. | |
Privátní typy | |
typedef std::vector< Surface > | frames_t |
Privátní metody | |
void | loadItem_ (TiXmlElement *el, Uint16 width, Uint16 height, const Surface &sur_src, const Surface &sur_shadow_src) |
Uloží konkrétní surface zadané v elementu. | |
Privátní atributy | |
frames_t | frames_ |
Seznam framů a jejich stínů. | |
frames_t | shadow_frames_ |
frames_t::size_type | cur_frame_ |
Index dalšího framu. | |
bool | draw_shadow_ |
Vykreslovat stíny. | |
Uint16 | frame_period_ |
Délka zobrazení jednoho framu. | |
Uint16 | last_access_ |
Doba od posledního posunu framu. | |
Uint16 | run_counter_ |
Uint8 | transparency_ |
Počítadlo běhů animace. |
Inicializace XML elementem a zdrojovým surface, nebo čistým okopírováním jiné animace. Interface obsahuje ještě metodu na resetování stavu animace, update stavu animace a vykreslení aktuálního obrázku do okna.
string | Při chybě v načítání xml vypouští výjimky s chybovým hlášením. |
typedef std::vector<Surface> Animation::frames_t [private] |
Animation::Animation | ( | ) |
Bez inicializace.
Animation::Animation | ( | TiXmlElement * | el, | |
Uint16 | width, | |||
Uint16 | height, | |||
const Surface & | sur_src, | |||
const Surface & | sur_shadow_src = 0 | |||
) |
Inicializace z XML a zdrojového surface.
Animation::Animation | ( | const Animation & | anim | ) |
Okopírování animace.
const Animation & Animation::initialize | ( | TiXmlElement * | el, | |
Uint16 | width, | |||
Uint16 | height, | |||
const Surface & | sur_src, | |||
const Surface & | sur_shadow_src = 0 | |||
) |
Inicializace z XML a zdrojového surface.
Nastavuje inicializační hodnoty, parsuje XML element a vytváří z něj animaci.
el | XML element obsahující definici animace. Minimálně musí obsahovat atributy x,y. Typicky obsahuje podelement animation(rate="") s podelementy animation_item(x,y) | |
width | šířka každého framu animace | |
height | výška každého framu animace | |
sur_src | zdrojový obrázek, ze kterého se vyřeže animace | |
sur_shadow_src | zdrojový obrýzek, ze kterého se vyřežou stíny, defaultně bez stínů. |
void Animation::reset | ( | ) |
Nastavení prvního obrázku jako aktuální.
Nastaví počítadlo na počáteční frame, vynuluje dobu od posledního posunu framu.
void Animation::random | ( | ) |
Nastavení náhodného obrázku jako aktuální.
Nastaví počítadlo na náhodný frame, vynuluje dobu od posledního posunu framu.
bool Animation::update | ( | ) |
Update stavu animace (typicky nastavení dalšího framu).
Zaručí správnou rychlost animace.
Uint16 Animation::run_num | ( | ) | const |
Počet opakování animace.
Uint16 Animation::periods_to_end | ( | ) | const |
Počet period do konce běhu animace.
void Animation::draw | ( | SDL_Surface * | window, | |
int | x, | |||
int | y | |||
) | const |
Vykreslení aktuálního framu.
window | surface okna pro vykreslení | |
x | cílová souřadnice pro vykreslení | |
y | cílová souřadnice pro vykreslení |
Uint16 Animation::height | ( | ) | const |
Výška animace.
Uint16 Animation::width | ( | ) | const |
Šířka animace.
void Animation::set_transparency | ( | Uint8 | alpha | ) |
Nastaví průhlednost celé animace.
Nastaví každému framu animace průhlednost, pokud se má vykreslovat stín, nastaví mu poloviční průhlednost.
alpha | míra průhlednosti |
void Animation::loadItem_ | ( | TiXmlElement * | el, | |
Uint16 | width, | |||
Uint16 | height, | |||
const Surface & | sur_src, | |||
const Surface & | sur_shadow_src | |||
) | [private] |
Uloží konkrétní surface zadané v elementu.
Parsuje XML element a vytváří z něj konkrétní jeden frame.
el | XML element <animation_item x,y,(shadow_x, shadow_y)> obsahující definici jednoho framu. | |
width | šířka framu animace | |
height | výška framu animace | |
sur_src | zdrojový obrázek, ze kterého se vyřízne frame | |
sur_shadow_src | zdrojový obrýzek, ze kterého se vyřízne stín. |
frames_t Animation::frames_ [private] |
Seznam framů a jejich stínů.
frames_t Animation::shadow_frames_ [private] |
frames_t::size_type Animation::cur_frame_ [private] |
Index dalšího framu.
bool Animation::draw_shadow_ [private] |
Vykreslovat stíny.
Uint16 Animation::frame_period_ [private] |
Délka zobrazení jednoho framu.
Uint16 Animation::last_access_ [private] |
Doba od posledního posunu framu.
Uint16 Animation::run_counter_ [private] |
Uint8 Animation::transparency_ [private] |
Počítadlo běhů animace.
Míra průhlednosti.