https://scratch.mit.eduZde najdete Scratch

Lekce – cykly, animace a kostýmy

Jednu ze základních programátorských konstrukcí tvoří cykly. Cykly opakují část kódu stále dokola. Cykly se často používají pro animace, tedy plynulé posouvání či otáčení postav po scéně. Pro animace se též používá střídání kostýmů postavy.

Co budeme dělat?

Tady se podívejte, jaký program budeme vytvářet. Netopýr bude létat z jedné strany obrazovky na druhou a přitom mávat křídly.

Teď se postupně naučíme, co budeme k tomu potřebovat.

Nekonečný cyklus

Jednoduchý cyklus jsme již použili v minulé lekci. Je to cyklus OPAKUJ DOKOLA, neboli též nekonečný cyklus. Nekonečný proto, že tento příkaz nikdy neskončí, program se v něm točí stále dokola. Všimněte si, že není možné za tento příkaz připojit nic dalšího (chybí tam pacička).OPAKUJ DOKOLA

Ještě trocha pohybu

Podíváme se na další příkazy pro pohyb, které se často používají v cyklech. Kromě příkazu NASTAV X,Y NA – (o kterém jsme mluvili minule a který přesune postavu na konkrétní souřadnice na scéně) existuje příkaz ZMĚŇ X,Y O –. Tento příkaz změní aktuální Xovou či Ynovou souřadnici o zadanou hodnotu. Nezadáváte tedy konkrétní polohu, ale změnu vzhledem k místu, kde se postava právě nachází.ZMĚŃ X,Y O

 

Pohyb v cyklu – základ animace

Založíme si nový projekt.Přidáme do něj z knihovny postavu netopýra a smažeme postavu chodící kočky (jak to uděláte najdete v článku Postavy).

A pro netopýra napište jednoduchý scénář.lekce_cyklypodminky1

Zkuste ho spustit, netopýr plynule odjede k pravému okraji, kde se zarazí.Co se ale vlastně děje. Zkuste si program zpomalit, přidejte na konec cyklu příkaz Příkaz ČEKEJ - SEKUND. Přetáhněte netopýra myší zpět doprostřed a program znovu spusťte. Netopýr  jede, ale skokově, vždy přeskočí o 10 bodů, vteřinu počká, skočí o další 10 bodů, zase počká…. A to je základ animace ve Scratchi. Postavou vždy pohneme o malý kousek, a když to děláme rychle za sebou, pohyb vypadá plynule. Cyklus proběhne 24x, než se netopýr dostane k pravému okraji (24×10=240, souřadnice X=240 je pravý okraj). Kdybychom rovnou napsali příkaz NASTAV X NA 240, netopýr se dostane na stejné místo, ale rovnou tam skočí, neuvidíme plynulý pohyb.

 

Cyklus OPAKUJ – KRÁT

Nyní musíme vyřešit, jak udělat to, aby se netopýr otočil, když dojede k okraji a jela zpátky. U dalšího okraje se zase otočí a tak pořád dokola. Na to použijeme jiný druh cyklu. Jde o cyklus OPAKUJ – KRÁT, který jako parametr dostává číslo, kolikrát se má zopakovat (například opakuj 10x). Pak skončí a kód pokračuje dále (všimněte si, že má dole pacičku, takže za něj můžeme připojit další příkazy).

A teď napište netopýrovi takovýto scénář.

lekce_cyklypodminky2

Všimněte si

  • úplně na začátku provádíme počáteční nastavení (neboli inicializace). Aby netopýr začínala vždy na stejném místě a nemuseli jsme ji myší vracet.
  • inicializace umístí netopýra k levému okraji
  • Vytvoříme cyklus OPAKUJ 48 KRÁT.  V každém kroku cyklu se posuneme o 10. 48×10=480, což je přesně šířka obrazovky – viz Scéna.
  • Pod ním vytvoříme ještě jeden stejný cyklus, jen se budeme pohybovat v opačném směru o minus 10. Netopýr poletí zpátky
  • A tyto 2 cykly obalíme nekonečným cyklem, aby se vše opakovalo stále dokola. Netopýr tedy přeletí tam, zpátky a to celé pořád dokola. Říká se tomu vnořený cyklus, neboli cyklus uvnitř jiného cyklu (v našem případě dva KRÁT cykly uvnitř nekonečného cyklu.

Netopýr nám lítá tam a zpět, ale pořád kouká jedním směrem.

Práce se směrem postavy

O směru postavy a stylu otáčení postavy s nejprve přečtěte ve Vlastnostech postavy. Nyní zajistíme, aby se netopýr, když letí doleva, koukal doleva. Použijeme k tomu příkaz NATOČ SE SMĚREM – a NASTAV ZPŮSOB OTÁČENÍ NA – . Upravte skript takto:

lekce_cyklypodminky3

Všimněte si

  • Příkazu pro nastavení směru NATOČ SE SMĚREM – vždy před cyklem, který vykonává pohyb příslušným směrem. 90 doprava a -90 doleva.
  • V inicializaci je příkaz NASTAV ZPŮSOB OTÁČENÍ NA (jen vlevo-vpravo). Tím říkáme, že se netopýr má překlápět a ne otáčet. Schválně zkuste tento příkaz vynechat, netopýr poletí zpět vzhůru nohama.

Mávání křídly – kostýmy

Jedna postava může mít  více  kostýmů – obrázků. Postava netopýra z knihovny má 2 kostýmy, podívejte se na záložku kostýmy.  Kostýmy se využívají k animaci postavy,  rychlým střídáním kostýmů u netopýra dosáhneme efektu mávání křídel. Přečtěte si podrobně o kostýmech v článku Postavy.

Kostýmy postavy

K netopýrovi přidejte následující scénář (ten původní nechte, přidejte druhý začátek kliknutí na vlajku)lekce_cyklypodminky4

Všimněte si

  • Příkazu DALŠÍ KOSTÝM, který stále dokola v cyklu střídá netopýrovi kostým.
  • Cyklus je zpomalený, aby křídla mávala o něco pomaleji. Před každým mávnutím čeká 0.1 sekundy.
  • Scénář netopýra má nyní dvě nezávislé části. Jedna v cyklu zajišťuje posun postavy. A druhá zajišťuje mávání křídel. A proč vše není v jednom cyklu? Protože cyklus mávání křídel je zpomalený, je tam příkaz čekej. Scénáře mohou mít libovolné množství zároveň běžících částí.

A nakonec přiřaďte do scény nějaké pěkné pozadí, ať netopýr nelétá po bílém papíře.

Závěr

Tak a to je pro tuto lekci vše. Netopýr se již chová jako v našem příkladu. Najdete ho zde:

https://scratch.mit.edu/projects/122248714/

Ověřte si své znalosti na tomto cvičení.

Přehled základních lekcí:

Share This