Jdeme na to s Urwigem - 4. Definice zón II.
Dnes dokončíme definici zóny, kterou jsme začali v minulém díle.
Viditelnost a aktivita
Každá zóna má dva důležité atributy, které určují její momentální stav. Jsou jimi viditelnost a aktivita.
Zóna tedy může být z pohledu viditelnosti:
- viditelná - zobrazuje se v seznamu zón v přehrávači a hráč se na ni může nechat navigovat,
- neviditelná (skrytá) - nezobrazuje se v seznamu zón a hráč se na ni nemůže nechat navigovat.
Z pohledu aktivity pak může být:
- aktivní - při vstupu do zóny nebo při přiblížení k ní může dojít k nějaké akci,
- neaktivní - s touto zónou přehrávač nijak nepracuje, k žádným akcím v souvislostí s ní nedochází.
Vzájemnou kombinací hodnot těchto dvou atributů se může zóna nacházet v jednom ze tří následujících stavů:
- viditelná aktivní - běžný stav: hráč vidí zónu v seznamu, může se na ni nechat navigovat a při vstupu nebo přiblížení se vykoná akce,
- skrytá aktivní - zónu hráč nevidí, ale při vstupu nebo přiblížení se vykoná akce; pomocí skrytých aktivních zón se dají ve hře provádět různé efekty. V našem příkladu s perníkovou chaloupkou může být skrytou aktivní zónou např. zóna „Mýtina“ - hráč se její umístění dozví jiným způsobem a bude muset do ní dojít, aniž by se na ni mohl nechat navigovat,
- neaktivní - bez ohledu na to, jestli je viditelná nebo skrytá, tato zóna v tuto chvíli nijak neovlivňuje hru, je „vypnutá“.
Pozor na příliš mnoho současně aktivních zón
Bohužel zde musím upozornit na jedno úskalí, které tvorbu hry poněkud komplikuje. S aktivními zónami je nutné nakládat velmi opatrně. Větší počet současně aktivních zón bez ohledu na viditelnost způsobuje problémy, které mohou skončit i pádem aplikace a hru nebude možné dohrát! Telefony většinou bez problémů zvládnou dostatečný počet současně aktivních zón, přístroje Garmin však začnou selhávat už při poměrně malém počtu. Je to ovlivněno náročnosti výpočtu vzdálenosti hráče k nejbližšímu místu na obvodu (polygonu) každé aktivní zóny, který se provádí několikrát za vteřinu.
Bezpečný počet současně aktivních zón je 6. Sedm je na hraně (může to fungovat, ale taky nemusí - záleží na složitosti tvaru zón), více už je hazardem. Vždy je vhodné to vyzkoušet v praxi na nějakém Garminovi. Je však potřeba mít na paměti, že i když to bude fungovat na jednom, nikde není zaručeno, že to bude fungovat na všech! Proto nedoporučuji počet současně aktivních zón 6 překračovat.
Zároveň zdůrazňuji, že toto omezení se týká pouze zón aktivních v jednom okamžiku. Neaktivních zón může hra obsahovat (a taky většinou obsahuje) mnohem víc. Na druhou stranu na limit nemá vliv viditelnost - viditelné i skryté, pokud jsou aktivní, se do limitu počítají.
Jak poznáme, že jsme limit aktivních zón překročili? Garmin nám to většinou sdělí roztomilým způsobem - bez varování a bez další hlášky se vypne. Dá se předpokládat, že i telefony budou mít nějaký svůj limit, ale ten se mi zatím nepodařilo zjistit, takže chování telefonu v tomto případě neznám. Jak vidíte, limit aktivních zón nelze brát na lehkou váhu, musíme s ním počítat a naučit se s ním žít.
Praktické rady
Na začátku hry budeme všechny zóny vytvářet jako neaktivní (výjimku tvoří zóny, které jsou aktivní hned po startu hry - v našem případě to bude zóna „Les“). Aktivovat a deaktivovat je budeme ve vhodný okamžik pomocí příslušného kódu.
Pokud v nějakém okamžiku chceme určité zóny aktivovat a jiné deaktivovat, provedeme nejprve deaktivace a teprve potom aktivace! Kdybychom to udělali obráceně, mohlo by se stát, že bychom překročili limit a než bychom se stačili následnou deaktivací dostat do bezpečných vod, hra by mohla spadnout.
Zobrazení objektů
Jak si ukážeme příště, zóna může obsahovat předměty nebo postavy. Autor může určit, kdy se tyto objekty hráči zobrazí. V části Zóna v poli Zobrazit objekty je možné vybrat jednu z následujících možností:
- Nikdy - objekty v zóně se hráči nezobrazí nikdy. Upřímně řečeno, není moc důvodů tuto volbu používat, ale máme ji k dispozici, tak si o ní řekněme. Třeba mě časem napadne nějaké její smysluplné použití.
- Při vstupu - objekty se hráči zobrazí v okamžiku, kdy se nachází uvnitř zóny. Nejčastější použití, implicitní nastavení.
- Při přiblížení - objekty se hráči zobrazí již v okamžiku, kdy se dostane do blízkosti zóny, tj. když jeho vzdálenost od zóny je menší nebo rovna údaji uvedeném v políčku V blízkosti.
- Vždy - objekty se hráči zobrazují vždy, když je zóna viditelná aktivní, bez ohledu na to, jak daleko od ní se hráč nachází.
V zóně, v dosahu, v blízkosti
V předchozím odstavci jsme nakousli pojem blízkost k zóně. Z pohledu pozice hráče vzhledem k zóně můžeme rozeznávat tyto situace:
- V zóně - hráč se nachází uvnitř polygonu, kterým je zóna tvořena.
- V blízkosti - hráč se nachází mimo polygon, kterým je zóna tvořena, ale jeho vzdálenost k zóně je menší nebo rovna údaji uvedenému v políčku V blízkosti.
- V dosahu - hráč se nachází mimo polygon, kterým je zóna tvořena, ale jeho vzdálenost k zóně je menší nebo rovna údaji uvedenému v políčku V dosahu. Pokud zaškrtneme volbu Vždy v dosahu, pak se vzdálenost nebude vyhodnocovat a hráč bude vždy v dosahu zóny, nebude-li zrovna přímo v ní.
- Mimo dosah - hráč se nachází mimo polygon, kterým je zóna tvořena, a není ani v dosahu, ani v blízkosti.
Na pozici hráče vůči zóně může autor reagovat spuštěním požadovaného kódu (např. zobrazit nějaké hlášení, nastavit parametry apod.) S tím souvisí definice jednotlivých událostí zóny, což si podrobněji rozebereme v některé z dalších částí, kde si budeme povídat o doplnění logiky příběhu.
Příkazy
Jak nám panel vlastností nabízí, lze i k zónám nadefinovat příkazy, třeba Prohledat, na jehož základě by se nám odkryly některé jinak skryté části. Bohužel, zatímco na telefonech to funguje bez problémů, Garminy příkazy u zón nepodporují a nezobrazují je. Z toho důvodu se jejich používání nedoporučuje. Pokud chceme něco podobného hráči umožnit, nezbývá nám, než do zóny umístit speciální předmět a příkazy nadefinovat u něj.
Pokračování: Jdeme na to s Urwigem - 5. Předměty a postavy