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