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.
[mwm-aal-display]
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.
[alert-note]Důležité
Je důležité klony rušit, když už je nepotřebujeme. Nestačí je skrývat, musíme použít příkaz ZRUŠ TENTO KLON. Čím více klonů, žím je program pomalejší.
[/alert-note]
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.
[sc name=“Lekce“]

