Lekce – Klonování
|V této lekci se naučíme klonovat. Ale nebojte se, nebude provádět žádné genetické experimenty. Klonování nám umožní vytvořit z jedné postavy postav více, čili její kopie neboli klony. Snadno tak získám mnoho nepřátel, mnoho mraků na pozadí či padající sněhové vločky.
Co je to klonování
Klonování je velmi důležitá technika, kterou použijete v mnoha hrách či animacích. Díky klonování můžete připravit jednu postavu a tu pak mnohokrát zkopírovat neboli naklonovat. Všechny naklonované postavy budou mít stejné vlastnosti a budou se řídit stejným skriptem.
Příklad – padající vločky
Základy klonování si předvedeme na této jednoduché animaci. Naprogramujeme padající sněhové vločky. Výsledek bude vypadat takto:
a projekt najdete zde https://scratch.mit.edu/projects/127081787/
Vytvoření klonu
Nejprve potřebujeme vzorovou postavu, kterou budeme klonovat. V našem případě to bude postava Sněhové vločky. Pro vločku napíšeme dva scénáře, ten první bude vypadat takto:
V tomto scénáři vykonáme po spuštění programu několik věcí:
- Nejprve vločku skryjeme, protože nechceme, aby tato prvotní vzorová vločka byla vidět. Vidět budou až její klony. První vločka se nikam nepohybuje, takže by na scéně jen překážela.
- Poté v nekonečné cyklu vločku klonujeme, příkazem KLONUJ –, v našem případě KLONUJ SEBE. Vločka tedy vytváří klony sebe sama. Teoreticky bychom nekonečný skript mohli napsat například do Scény, pak by se nevolalo KLONUJ SEBE, ale KLONUJ SnehovaVlocka.
- Poku bychom chtěli sněžení méně husté, stačí dát před příkaz klonuj do cyklu příkaz ČEKEJ 0.2 S (resp. nastavit vhodnou dobu čekání před vytvořením dalšího klonu).
Co udělá příkaz KLONUJ-? Vezme vzorovou postavu a vytvoří jí ve scéně ještě jednou. Na stejné pozici jako je vzorová postava, se stejným natočením a dalšími vlastnostmi – jde prostě o přesnou kopii vzorové postavy.
Ovládání a rušení klonu
Pokračujeme v našem příkladu s vločkami. Pro postavu vlošky přidáme ještě druhý scénář:
V tomto scénáři si všimněte:
- Nové události KDYŽ STARTUJI JAKO KLON, která scénář spouští. Tento scénář se spustí ve chvíli, kdy je postava naklonována (tedy když vznike příkazem KLONUJ -).
- Hned po vzniku je nová postava umístěna k hornímu okraji (y=180) a na náhodnou pozici na ose X. Všimněte si že vzorová vločka, ze které se klonuje, nebyla umístěna na žádném konkrétním místě. Na požadované místo umístíme až klon. A díky náhodným číslům se každá vločka/klon objeví někde jinde.
- Poté je vločka zobrazena příkaze UKAŽ SE (vzorová vločka byla skrytá, klon je tedy také skrytý a je nutné ho zobrazit).
- Pak následuje klasická animace cyklem – posun k d olnímu okraji.
- Ve chvíli, kdy vločka dojede k dolnímu okraji (y-170), volá se příkaz ZRUŠ TENTO KLON, který vločku zruší a skript dále nepokračuje.
K čemu se klonování používá
Klonování můžeme použít na mnoho věcí, například:
- Generování nepřátel a překážek – nepřátelé jsou náhodně generování a útočí na hráče
- Střely – při výstřelu je vytvořen klon střely na pozici střílejícího, střela pak nezávisle letí svou rychlostí.
- Částicové efekty (vločky, kapky, kouř, výbuchy,…) – tedy animace složené z mnoha malých částí, která se každá chová podobně
- Mnoho dalšího
Příklady použití
Ninaj Run
Ve hře Ninja Run používám klonování k:
- Generování nekonečné plošiny, po které Ninja běží
- Generování bedniček a hvězdiček
- Generování mraků na pozadí.
Pozvánka na oslavu
V ukázkové Pozvánce na oslavu na závěr vyletí několik nafukovacích balónků. Ty jsou také naklonované z jedno balónku.
Cvičení
Ověřte si své znalosti na tomto Cvičení. Vytvořte hru, ve které pes uhýbá před padajícími melouny.