Globální události zón

Navigace:  Něco navíc >

Globální události zón

Předchozí stránkaNahoruDalší stránka

Další specialitou Urwiga, která v klasickém wherigo konceptu chybí, jsou tzv. globální události zón. K čemu jsou dobré? Představte si, že tvoříte wherigo, kde se má při příchodu do KAŽDÉ zóny provést nějaká akce. Jako příklad takového wheriga bych mohl uvést např. svůj Labyrint anebo Tučňákových Deset stupňů ke zlaté - při příchodu do zóny se hráči zobrazí zadání úkolu.

 

To lze vyřešit například pomocí funkcí. Vytvoříme si funkci, jejíž volání pak umístíme do události Při vstupu u každé zóny. Má to však jednu nevýhodu - musíme na to u každé zóny pamatovat a volání funkce do události vložit.

 

Jednodušší řešení nám nabízejí právě globální události zón. Definují se na kartě s vlastnostmi cartridge, kterou si můžeme zobrazit pomocí příkazu z menu Zobrazit > Cartridge. V sekci Globální události zón pak máme k dispozici tyto události:

 

Při vstupu

Při opuštění

Při dosahu

Při blízkosti

Při změně aktivity

 

Význam jednotlivých událostí je shodný jako u zón. Jakmile napíšeme obsluhu nějaké globální události zón, provede se její kód pro KAŽDOU aktivní zónu. Napíšeme-li tedy obsluhu do události Při vstupu, pak při vstupu do jakékoliv aktivní zóny bude vyvolán její kód. Ten se v zásadě neliší od kódu běžné události. Rozdíl je v tom, že uvnitř diagramu globální události můžeme používat objekt Stávající zóna z kategorie Aktuální objekty. Pomocí tohoto speciálního objektu dostaneme přístup ke konkrétní zóně, která událost vyvolala. Můžeme tak např. zjistit nebo změnit její název, popis a další parametry. Na základě těchto událostí pak můžeme případně větvit kód globální události.

 

Jistou nevýhodou globálních událostí se zase může jevit skutečnost, že jsou provedeny pro KAŽDOU aktivní zónu. Pokud potřebujeme, aby se pro některou zónu kód nevykonal, musíme do diagramu vložit větvení a akce nechat provést pouze v případě, že název aktivní zóny je jiný.

 

Jak se ukazuje, nejedná se o univerzálně výhodné řešení, musíme jej používat s rozmyslem. V zásadě platí, že pokud u výrazné většiny zón stejnou akci potřebujeme a u několika jednotlivých zón nikoliv, je lepší využít globální událost a výjimky vyřešit akcí Když/jinak. Naopak pokud stejnou akci budeme potřebovat u několika málo zón a u výrazné většiny nikoliv, je lepší využít řešení pomocí speciální funkce, kterou pak zavoláme na začátku událostí požadovaných zón.