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

Ostatní jazyky GameMaker GML 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ženo 145x (1.24 MB)
Aplikace je včetně zdrojových kódů v jazyce GameMaker

 

  Aktivity (1)

Hru pro vás napsal TomBen
Avatar
-

Jak se ti líbí článek?
Celkem (2 hlasů) :
4444 4


 


Miniatura
Všechny články v sekci
GameMaker - GML
Miniatura
Následující článek
BlowWind Benchmark

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!