![]() |
CH4RG3
Török Attila Szoftver laboratórium 1 nagy házi feladata
|
A jeleneteket kezelő függvények definíciói. Részletek...
static StateManager * | static_sm_ptr = 0 |
Egy statikus pointer a StateManager példányra. | |
void | statemanager_destroy_current_state (StateManager *sm) |
Elpusztítja a jelenlegi jelenetet. | |
void | statemanager_create_next_state (StateManager *sm) |
Létrehozza a következő jelenetet. | |
StateManager * | statemanager_create (sfRenderWindow *win, State s) |
A StateManager struktúra konstruktora. | |
void | statemanager_set_state (State s) |
Jelentváltást ütemez be. | |
State | statemanager_get_current_state (void) |
Az aktív jelenet azonosítójának lekérése. | |
void | statemanager_handle_event (StateManager *sm, sfEvent e) |
Az események kezelését proxyzó függvény. | |
void | statemanager_update (StateManager *sm, float dt) |
Az léptetést proxyzó függvény. | |
void | statemanager_render (StateManager *sm) |
Az kirajzolást proxyzó függvény. | |
void | statemanager_destroy (StateManager *sm) |
A StateManager struktúra destruktora. |
A jeleneteket kezelő függvények definíciói.
void statemanager_create_next_state | ( | StateManager * | sm | ) |
Létrehozza a következő jelenetet.
sm | Mutató a StateManager példányra. |
Az sm paraméter által mutatott StateManager példányban beütemezett következő jelenetazonosítónak megfelelő típusú jelenetet hoz létre és inicializál, mint az aktív jelenet.
Ha a jelenlegi jelenetazonosító nem STATE_NONE, ez a függvény nem csinál semmit, ekkor előbb a statemanager_destroy_current_state függvényt kell meghívni, hogy felszabaduljon a jelenlegi jelenet.
void statemanager_destroy_current_state | ( | StateManager * | sm | ) |
Elpusztítja a jelenlegi jelenetet.
sm | Pointer a StateManager példányra. |
Az sm paraméter által mutatott StateManager példány jelenleg aktív jelenetét elpusztítja a destruktorának meghívásával, majd STATE_NONE-ra állítja a jelenlegi jelenet azonsítóját.
Ha rögtön ezután nem jön létre egy másik jelenet (akár azonos típussal), és a főciklus megkezd egy újabb iterációt a StateManager STATE_NONE-t jegyző állapotában, a program szabályosan kilép és felszabadítja minden erőforrását.
|
static |
Egy statikus pointer a StateManager példányra.
Ha létezik egy példány a StateManager struktúrából, akkor annak a címét tárolja; ha nem, akkor 0.
Erre azért van szükség, hogy a StateManager konstruktora leellenőrizhesse, hogy létezik-e már példány, tehát viselkedhessen singletonként a struktúra.
Abban is segítséget nyújt, hogy az egyes, a jelenteket kezelő függvényeknek ne kelljen mindenhol paramétreként átadni a StateManager példány címét, tehát egyszerűbben meg lehessen hívni azokat.