Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Undo Redo v Game Makeru (zpět a vpřed)

Známá funkce, která vrátí stav před minulou činností uživatele je sice poměrně vzácná ve hrách, ale pokud zkoušíte v GM dělat cokoli jiného, může celkem citelně chybět a zároveň se obvykle člověku děsně nechce patlat s něčím takovým uprostřed nějakého většího projektu.

Vlastně mě k téhle myšlence inspirovala vzpomínka na jednoho známého, který pracuje pro firmu dodávající velký databázový systém. Jednal jsem s ním o nějaké úpravě a když jsme se dohodli na podobě změny, prohlásil: "Prostě nad tím parametrem zapneme historii." Lehkost s jakou to pronesl naznačovala, že není problém "zapnout historii" nad jakoukoli položkou. V Game Makeru se mi párkrát stalo, že jsem zatoužil po podobném zapnutí historie, ale vždycky to znamenalo spoustu kódu navíc. Tak jsem se tomu vyhýbal jako čert kříži. Až doteď.

Dal jsem si s tím tu trochu práce a udělal jsem to velice univerzální a jednoduché na použití. Načtením UndoRedo.gmres (přes Import Resources) se vloží do vašeho programu nebo hry jeden objekt (class_undoredo) a následující skripty:

undo(object)        vrátí minulý stav proměnné value
redo(object)        vrátí stav před provedením undo
preset(object)      nastaví proměnnou value na její základní stav
set(object,val)     nastaví proměnnou value na hodnotu val
get(object)     vrací hodnotu proměnné value
number_redos(object)    počet položek v zásobníku redo
number_undos(object)    počet položek v zásobníku undo

Pak když jakémukoli objektu nastavíte class_undoredo jako parent, můžete používat výše uvedené funkce a nemusíte se starat o to, jak se to vlastně děje. Jedině je třeba pohlídat, aby při vlastní náplni eventu Create (a některých User Eventů) byl volán Inherited Event, což jde jak kódem, tak ikonou.

Funkce jsou neomezené, tzn. nekontrolují kolikrát je undo použito a do jaké hloubky se jde. Prostě lze ukládat historii dokud nedojde paměť. Použití by mělo být bezproblémové, ale kdyby se přece jen něco vyskytlo, napište.


Galerie

Hra byla vytvořena v roce 2013.

 

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 155x (1.24 MB)
Aplikace je včetně zdrojových kódů v jazyce GameMaker

 

Všechny články v sekci
GameMaker - GML
Článek pro vás napsal TomBen
Avatar
Uživatelské hodnocení:
2 hlasů
-
Aktivity