IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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 (späť a dopredu)

Známa funkcia, ktorá vráti stav pred minulou činnosťou užívateľa je síce pomerne vzácna v hrách, ale ak skúšate v GM robiť čokoľvek iné, môže celkom citeľne chýbať a zároveň sa zvyčajne človeku desne nechce patlať s niečím takým uprostred nejakého väčšieho projektu.

Vlastne ma k tejto myšlienke inšpirovala spomienka na jedného známeho, ktorý pracuje pre firmu dodávajúci veľký databázový systém. Rokoval som s ním o nejakej úprave a keď sme sa dohodli na podobe zmeny, vyhlásil: "Jednoducho nad tým parametrom zapneme histórii." Ľahkosť s akou to predniesol naznačovala, že nie je problém "zapnúť históriu" nad akoukoľvek položkou. V Game Makeru sa mi párkrát stalo, že som zatúžil po podobnom zapnutí histórie, ale vždy to znamenalo veľa kódu navyše. Tak som sa tomu vyhýbal ako čert krížu. Až doteraz.

Dal som si s tým tú trochu práce a urobil som to veľmi univerzálny a jednoduché na použitie. Načítaním UndoRedo.gmres (cez Import Resources) sa vloží do vášho programu alebo hry jeden objekt (class_undoredo) a nasledujúce 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

Potom keď akémukoľvek objektu nastavíte class_undoredo ako parent, môžete používať vyššie uvedené funkcie a nemusíte sa starať o to, ako sa to vlastne deje. Jedine treba postrážiť, aby pri vlastnej náplni eventu Create (a niektorých User event) bol volaný Inherited Event, čo ide ako kódom, tak ikonou.

Funkcie sú neobmedzené, tzn. nekontrolujú koľkokrát je undo použité a do akej hĺbky sa ide. Proste možno ukladať históriu kým nedôjde pamäť. Použitie by malo byť bezproblémové, ale keby sa predsa len niečo vyskytlo, napíšte.


Galéria


 

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 155x (1.24 MB)
Aplikácia je vrátane zdrojových kódov v jazyku GameMaker

 

Všetky články v sekcii
Game maker - GML
Článok pre vás napísal TomBen
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
-
Aktivity