https://scratch.mit.eduZde najdete Scratch

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:

lekce_klonovani1

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ář:lekce_klonovani2

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

ninjarun

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. Pozvánka na oslavu

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.pesamelouny

 

[sc name=“Lekce“]