Programování pro hračičky/Měniči/Lekce 2: Porovnání verzí

Smazaný obsah Přidaný obsah
přesun příkladu zatáhni
Řádek 16:
 
Na stejném principu je založeno i smyslové prozkoumávání herních objektů, o kterém jsme mluvili v minulém kroku. Pokud hráč například očichá nějaký objekt, vyšle se objektu požadavek, aby spustil funkci, která hráči pošle zprávu o zápachu objektu. Rozdíl je jen v tom, že příkazy pro smyslové prozkoumávání okolních objektů jsou definovány v samotném objektu hráče, tedy hráč je má všude k dispozici, zatímco specifické příkazy například pro snědení potravy nebo vypití nápoje definovány právě v objektu potravy, resp. objektu nápoje. Pokud hráč napíše příkaz <code>vypij</code> a v jeho inventáři ani v jeho okolí není žádný objekt, v němž by byl takový příkaz definován, dostane obecnou hlášku <code>Prosím?</code> a žádná akce se nespustí. Jakmile se však hráč dostane do blízkosti nějakého nápoje, získá tím možnost užívat příkaz <code>vypij</code>, a ten pak způsobí buď vypití nápoje, nebo nějakou specifičtější hlášku (např. <code>Co chceš vypít?</code>), pokud se příslušné funkci nepodařilo rozpoznat, co přesně chce hráč daným příkazem provést.
 
Je-li příkaz takto definován v objektu, se kterým se má provádět, může se stát, že týž příkaz v různých situacích bude znamenat úplně jiný úkon. Například páka umístěná u nějakého stroje může nabízet příkaz <code>zatáhni<code>.<ref>Stejně jako příkazy smyslového zkoumání se dají zadávat mnoha synonymy — například místo <code>očichej</code> můžeme použít též varianty <code>očuchej<code>, <code>očichám</code>, <code>očuchám</code>, a s jinou pádovou vazbou rovněž <code>čichni</code>, <code>čuchni</code>, <code>čichnu</code>, <code>čuchnu</code>, <code>přičichni</code>, <code>přičuchni</code>, <code>přičichnu</code>, <code>přičuchnu</code>, <code>přivoň</code>, <code>přivoním</code> — nabízejí zpravidla i příkazy definované jednotlivými objekty vícero variant. V případě příkazu <code>zatáhni<code> to budou nejspíš například varianty <code>zatáhnu<code>, <code>zatahej<code> a <code>zatahám<code>.</ref> Pokud pak postava stojící u páky zadá <code>zatáhni za páku<code>, může daný stroj spustit. U vchodu do nějakého domu zase může být šňůra, která nabízí stejný příkaz <code>zatáhni<code>, avšak zatahání za ni nespustí žádný stroj, nýbrž rozezní domovní zvonek.
 
== Metody a příkazy ==
Řádek 27 ⟶ 29:
Právě v rámci této poslední jmenované metody (tedy v průběhu „inicializace objektu“), mohou některé objekty nabídnout hráči speciální příkazy. Hráč k nim získá přístup jen po dobu pobytu poblíž daného objektu: jakmile odejde do jiné místnosti a danému objektu se vzdálí, jsou mu zase automaticky odebrány.
{{doplnit|poznámku o inventářích během získání a ztráty místního příkazu}}
Jiný objekt někde jinde přitom může nabízet stejný příkaz, klidně ale s úplně jiným výsledkem.
 
Např. páka umístěná u nějakého stroje může nabízet příkaz <code>zatáhni<code>.<ref>Často jsou takovéto příkazy ve vícero variantách, zde by to např. mohla být skupina příkazů <code>zatáhni<code>, <code>zatáhnu<code>, <code>zatahej<code> a <code>zatahám<code></ref> Pokud pak postava stojící u páky zadá <code>zatáhni za páku<code>, může daný stroj spustit. Na verandě nějakého domu může být šňůra, která sice nabízí opět příkaz <code>zatáhni<code>, zatahání za ni ale akorát rozezní domovní zvonek.
 
{{doplnit|vysvětlení rozdílu mezi hláškami „Prosím?“, „Zatahej? Za co?“ a „Za páku? Kde?“ příp. též nutnosti malých písmen v prvním slově}}
 
== Reálné a virtuální objekty ==