Na co si dát pozor

Navigace:  Vstupy >

Na co si dát pozor

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

Při používání vstupů je potřeba si dát pozor na některé situace. První z nich jsme už jmenovali v předchozím textu - pokud u číselného vstupu hráč vloží nečíselnou hodnotu, je dobré na to pamatovat obsloužením události Při chybě.

 

Překrývání

Podobně jako zpráv a dialogů, má i vstup tu nepříjemnou vlastnost, že po jeho zobrazení se původní kód nezastaví, ale doběhne až do konce. Proto ve skutečnosti má smysl uvádět vstup až na konci diagramu, kdy už žádný další kód nenásleduje. Pokud chceme, aby po vložení vstupu kód nějak pokračoval, musíme ho vložit do události Při získání odpovědi. Funguje to dobře, ale znepřehlední to kód, protože ho „rozbije“ - první jeho část (před zobrazením vstupu) je v jednom diagramu a druhá část (po zobrazení vstupu a odpovědi hráče) v jiném. Moc s tím ale nenaděláme, nezbývá nám, než se s tím smířit. Proto je lepší pro jednoduché rozhodování o dvou variantách radši používat zprávy nebo dialogy.

 

A protože vstupy fungují podobně jako zprávy a dialogy, může také dojít k jejich překrytí. To znamená, že v okamžiku, kdy je zobrazen vstup, dojde k zobrazení jiné zprávy, případně jiného vstupu. K tomu může dojít např. tak, že hráč mezitím vstoupí do nějaké zóny, nebo doběhne časovač (o nich příště). Prvním nepříjemným důsledkem této situace je skutečnost, že původní vstup zmizí a místo něj se zobrazí nová zpráva. Druhým, horším, důsledkem je to, že hra může v takovém případě zhavarovat. Obzvlášť náchylné k tomuto „řešení“ nestandardní situace jsou naše známé Oregony.

 

Vypořádat se s tímto problémem se ctí není úplně jednoduché. Nejlepší je, pokud se nám podaří hru navrhnout tak, aby podobné nebezpečí vůbec nehrozilo. To se nám ale málokdy podaří. Další možností je si před každým zavoláním vstupu nastavit příznak do proměnné a před zobrazením každé zprávy si zkontrolovat, jestli náhodou není nějaký vstup zobrazen. V událostech Při získání odpovědi nebo Při chybě pak samozřejmě nesmíme zapomenout příznak v proměnné zase zrušit.

Podobně to řeším ve svém wherigu Labyrint. Po vstupu do zóny se tam hráči zobrazí vstup s otázkou a čtyřmi variantami odpovědi. Mezitím běží časovač a v určitých intervalech zobrazí hráči informaci o aktuálním postupu Mínotaura. Pokud k tomu má dojít, nejprve otestuji hodnotu proměnné, jestli náhodou hráč nemá zobrazen nějaký vstup s otázkou. Pokud zjistím, že ano, informaci nevypíšu, „poznamenám“ si tuto skutečnost a informaci zobrazím až později, když hráč odpoví.