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

Smazaný obsah Přidaný obsah
Řádek 22:
== Metody a příkazy ==
 
Abychom pochopili princip zacházení s herními objekty ještě o něco přesněji, musíme nahlédnout hlouběji do nitra objektů. Jak jsme si řekli výše, všechny akce s objekty se provádějí tak, že se objektu dá pokyn, aby spustil nějakou funkci, tedy určitý logicky ucelený kousek svého programového kódu. Takovéto na pokyn zvenčí spustitelné funkce nazýváme ''metody'', a o pokynu k jejich spuštění hovoříme jako o ''volání''.<ref>V programovém kódu objektu se mohou vyskytovat — a zpravidla také vyskytují — i funkce, které metodami nejsou, tedy nedajínejsou určeny k tomu, aby se popsaným způsobem volatvolaly zvenčí.</ref>
 
Jsou čtyři metody, které se v objektu volají automaticky:<ref>Přesněji řečeno volá tyto metody herní ovladač neboli driver, tedy program, který udržuje celou hru v chodu.</ref>
Řádek 28:
*Bezprostředně po vytvoření každého objektu se v něm zavolá metoda <code>create()</code>.<ref>Aby se názvy funkcí odlišily od jiných názvů, píší se za ně závorky. Mezi těmito závorkami případně mohou být i parametry funkce, ale tím se budeme zabývat až později.</ref> Ta zpravidla provede základní nastavení objektu — tedy definuje jeho vzhled, povrch, zápach, zvuk, hmotnost, cenu atd.
*V pravidelných časových odstupech (asi 40 minut reálného času) se v každém objektu zavolá metoda <code>reset()</code>. Ta zpravidla obnovuje ty vlastnosti objektu, které se mohou změnit následnou činností hráčů — například rostou-li na jabloni jablka, která mohou hráči otrhávat, může tato metoda obsahovat opětné doplnění jejich počtu.
*Při každém bezprostředním setkání objektu s živou bytostí se volá metoda <code>init()</code> — živou bytostí zde rozumíme objekt, kterému bylo povoleno vykonávat příkazy, což jsou typicky jednak hráči, jednak nehráčské postavy jako třeba Josef v úvodní místnosti hry, a bezprostředním setkáním zas míníme přesun objektu do inventáře živé bytosti, přesun objektu do inventáře jiného objektu, v němž se nachází živá bytost, nebo přesun živé bytosti do inventáře objektu. V této metodě se zpravidla definují příkazy, které mají být při zacházení s objektem živé bytosti k dispozici.
 
*Před zničením objektu (tedy jeho odstraněním ze hry) se v něm zavolá metoda <code>remove()</code> (či naopak, zavolání metody <code>remove()</code> způsobí zničení objektu, v němž byla zavolána). Ta se zpravidla stará o to, aby objekt dokončil nezbytné započaté akce, případně uložil nějaká data na disk.
 
 
 
Řádek 38:
{{doplnit}}
 
druhá dokáže hodnoty těchto vlastností vypsat (''query''), další je umí změnit (''set'')
Zdrojový kód objektů může být velmi dlouhý. Pro přehlednost jsou tak jednotlivé úkony sdruženy do větších logických celků, tzv. metod (funkcí), Ty mohou mít velmi rozličné: jedna metoda tak může sloužit k nastavení vlastností daného objektu na základní hodnoty (při prvním nastavování standardně označována ''create'', při dalších ''reset''), druhá dokáže hodnoty těchto vlastností vypsat (''query''), další je umí změnit (''set'') a ještě jiná se stará o akce, které se mají vykonat v případě, že se tento objekt potká s nějakou postavou (''init''). Tím ale soupis soupis možných metod zdaleka nekončí.
 
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}}