CH4RG3
Török Attila Szoftver laboratórium 1 nagy házi feladata
statemanager.c fájlreferencia

A jeleneteket kezelő függvények definíciói. Részletek...

static StateManagerstatic_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.
StateManagerstatemanager_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.

Részletes leírás

A jeleneteket kezelő függvények definíciói.

Függvények dokumentációja

void statemanager_create_next_state ( StateManager sm)

Létrehozza a következő jelenetet.

Paraméterek
smMutató a StateManager példányra.
Lásd még
StateManager
statemanager_set_state
statemanager_destroy_current_state
State
mainmenu_create
game_create

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.

Paraméterek
smPointer a StateManager példányra.
Lásd még
StateManager
statemanager_set_state
statemanager_create_next_state
State
mainmenu_destroy
game_destroy
main.c

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.

Változók dokumentációja

StateManager* static_sm_ptr = 0
static

Egy statikus pointer a StateManager példányra.

Lásd még
StateManager
statemanager_create
statemanager_set_state
statemanager_get_current_state
statemanager_destroy

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.