Pohyb – Motion

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

scratch-souradnice
scratch-souřadnicový systém

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

Kocour se pomocí šipek pohybuje po scéně. Souřadnice x a y se aktualizují každý pohyb.

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

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *