V minulém povídání jsme probrali události. Protože událostmi začíná obvykle každý kód bylo to logické. Jako další programové bloky si představíme modré bloky ve skupině „Pohyb„, nebo také, používáte-li anglickou verzi překladu „Motion„. Jak již název této skupiny napovídá bude se v ní řešit hlavně pohyb objektů na scéně. Je třeba si také uvědomit, že za pohyb se ve scratchi považuje i natočení objektu, tudíž i bloky řešící otáčení postav naleznete v této skupině.
Směr
Směr se v prostředí scratche měří ve stupních, ovšem není to jako v matematice, kdy je celý prostor pokrytý úhlem v intervalu 0-360 stupňů. Scratch nám to trošičku obohatil (zřejmě aby tomu děti lépe rozuměly, nebo je to možná nějaká americká podoba matematiky – nevím). Stupně natočení, nebo krátce po scratchovsku „Směr“ se počítá ve dvou půlintervalech 0 – 90 – 180 stupňů a 0 – -90 – 180 stupňů. Už když to vysvětluji mi z toho jde hlava kolem a celý tento systém mi přijde matoucí, proto jsem vytvořil vysvětlující hru, kterou přikládám.
Poloha – souřadnice
Již v jedné z předešlých lekci „Programovací rozhraní pro Scratch“ jsme nakousli systém souřadnic, který scratch pro zadávání umístění objektu na scéně používá. Pro vodorovné souřadnice polohy užívá proměnnou x a pro svislé proměnnou y. Poloha ve středu scény se dá vyjádřit v souřadnicích x,y jako 0,0. Směrem doprava a nahoru jsou x a y kladné hodnoty, směrem doleva a dolů pak hodnoty záporné (viz. následující obrázek).
I pro demonstraci polohy jsem si samozřejmě připravil demonstrační prográmek. Šipkami můžete cestovat s kocourem po scéně a zjišťovat jaké jsou souřadnice pro to, či ono, umístění.
Druhy pohybů
V zásadě, pokud si projdete v režimu tvorby příkazy v sekci „Pohyb“ zjistíte, že scratch v podstatě nabízí pouze dva druhy pohybu. Okamžité přesunutí (skok) a klouzání. Ono jich vlastně není více ani zapotřebí, protože jakýkoliv jiný druh pohybu jde naprogramovat s využitím blokových příkazů, které jsou k dispozici.
Klouzání
Klouzání je druh pohybu, při kterém jsou počáteční souřadnice dané polohou objektu na začátku pohybu a koncové zadáváte v nějaké formě v příkazu. Další významnou složkou příkazu je počet sekund, který určuje dlouho má pohyb objektu z počátečních souřadnic na koncové trvat. Scratch pak vypočítá algoritmus přemísťování – dráhu a časy a sekvence potřebné pro zobrazení animovaného pohybu objektu po dráze – a zobrazí pak při aktivaci v programu celý proces pohybu. Nám jako uživatelům pak přijde, že vidíme plynulý pohyb postavy z bodu A do bodu B.
Skok
Skok je druh pohybu, kdy se nic neanimuje. Prostě scratch přestane zobrazovat postavu na původních souřadnicích a začne ji zobrazovat na souřadnicích nových. V blocích „Pohyb“ pak najdete již naprogramované pohybové bloky, které fungují na tomto principu. Jsou to bloky s popisem skoč, ale také třeba blok dopředu o [ ] kroků, případně bloky „změň x/y„, nebo „nastav x/y„.
Základní druhy\ pohybů – klouzání, skoky i otáčení si můžete vyzkoušet v mém programu, který můžete nalézt zde. nebo si jej přímo vyzkoušet v následující „hře“.
Něco navíc
Scratch samozřejmě nabízí vždy něco navíc. Ve skupině pohyb naleznete kromě výše popsaných příkazů i výstupy pro proměnné x, y, a směr. Tyto výstupy je možné využít třeba pro konstruování skládaných příkazů (vysvětlíme si později) a dalším zajímavým blokový příkazem je blok definující odrážení od krajů scény. Tento blok jsem si vyzkoušel v kombinaci klouzáním a pohybem ve směru za myší. Kocoura jsem tak snadno dostal do stavu beztíže v kabině kosmické lodi. Program naleznete na scratchi zde.
Tip: Pokud byste rádi věděli jak úplně přesně použít příkazy, které jsem popisoval, neváhejte si přímo vždy kliknout na odkaz předváděcího programu a „Pohlédněte dovnitř“ kódu a bez obav se v něm zkuste povrtat. Je to ten nejlepší způsob jak pochopit, jak to přesně funguje.
Úkoly:
1, Zkuste si naprogramovat pohyb postavy po scéně ovládaný stiskem tlačítka na klávesnici
2, Zkus naprogramovat pohyb postavy pomocí klouzání podél okrajů scény.
3, Zkus naprogramovat náhodné přemísťování postavy po scéně.