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

Smazaný obsah Přidaný obsah
Řádek 31:
*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.
 
Objekty, s nimiž se dá zacházet specifickými příkazy, tedy definují tyto příkazy typicky ve funkci <code>init()</code>. Pokud tedy například objekt pochodně definuje příkazy <code>rozsviť</code> a <code>zhasni</code>, pošle se definice těchto příkazů objektu živé bytosti, která se s pochodní setkala, a tato živá bytost pak může těchto příkazů využívat. Jakmile se ovšem bytost od objektu zase vzdálí, příkazy se pro ni stanou opět nedostupnými.
 
Příkazy jako <code>rozhlédni se</code>, <code>očichej</code> nebo <code>vezmi</code>, které má mít živá bytost k dispozici stále, a to navíc pro sebe (a ne pro jiné živé bytosti, s nimiž se setká), naproti tomu nemá smysl definovat ve funkci <code>init()</code>, nýbrž ve funkci <code>create()</code>, tedy ve chvíli, kdy objekt právě vznikl a ještě nevstoupil do hry, takže definice příkazů pošle jen sobě jakožto jediné přítomné živé bytosti.<ref>Přesně vzato to takhle funguje u nehráčských bytostí, které si své základní příkazy definují skutečně ve funkci <code>create()</code>. Hráčský objekt — vytvářený při každém nalogování hráče a opět ničený při odlogování — si je definuje až ve funkci <code>setup_player()</code>, která se volá těsně po <code>create()</code> a která mj. načítá uložený stav hry z minula.</ref>
 
*Objekt hráče definuje příkazy <code>rozhlédni se</code>, <code>prohlédni si</code>, <code>očichej</code>, <code>ohmatej</code> a celou řadu dalších. Protože hráč je stále přítomen u objektu hráče, má tyto příkazy během hry stále k dispozici.
*Objekt pochodně definuje příkazy <code>rozsviť</code> a <code>zhasni</code>. Hráč může tyto příkazy používat tehdy, pokud má pochodeň ve svém inventáři nebo se nachází v místnosti, kde se nachází i pochodeň.
 
{{doplnit}}