NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Lekce 18 - Pohyb ve Scratchi

V předešlém cvičení, Řešené úlohy k 15.-17. lekci Scratche, jsme si procvičili nabyté zkušenosti z předchozích lekcí.

Ve většině předešlých programů naše postavy jenom stály nebo udělaly pár kroků nějakým směrem. Scratch nám ale pro pohyb postav nabízí mnohem více možností. Ty si v dnešním tutoriálu ukážeme a naučíme se oživit naše programy postavami, které nejsou líné se trochu pohnout. Nakonec vytvoříme hru na babu, při níž využijeme bloky karty Pohyb.

Karta Pohyb

V předchozích lekcích jsme se již s některými bloky z karty Pohyb setkali. To však byly jen bloky, které umožňovaly postavu trochu posunout na scéně. Pojďme se blíže podívat i na další bloky, které nám karta Pohyb nabízí. A opravdu jich není málo 🙂

Atributy pohybu postav

Ještě než se pustíme do samotného popisování bloků na kartě Pohyb, musíme nejprve zmínit, jak pohyb postav funguje. Každá postava má své hodnoty x, y a Směr, jejichž úpravou vytváříme iluzi pohybu. Osa X je horizontální (pohyb zleva doprava) a osa Y je vertikální (pohyb seshora dolů). Středem os je bod [0;0], který se nachází ve středu okna výstupu. Směr potom udává otočení postavy kolem své osy:

Vlastnosti pohybu postavy - Scratch

Atributu Směr můžeme navíc nastavit jeden ze tří režimů:

  • Dokola – postava se otáčí přesně podle atributu Směr (klidně i vzhůru nohama).
  • Vlevo/vpravo – postava se otáčí doleva nebo doprava.
  • Neotáčet – postava pořád kouká na výchozí pozici a atribut Směr ignoruje.
Možnosti otáčení postavy - Scratch

Hodnoty x, y a Směr můžeme také měnit ručně přepisováním hodnot pod výstupem programu:

Změna atributů ručně - Scratch

Pohyb postav budeme však ve většině případů chtít zajistit programově, tedy za běhu programu. Pojďme se tedy nyní podívat, jaké bloky nám k rozpohybování postav pomohou 😉

Blok dopředu o kroků

Tento blok zajistí, že se postava posune směrem, kterým je natočena, o zadaný počet kroků. Počet kroků se rovná počtu bodů na ose x:

Blok dopředu o kroků - Scratch

Bloky otoč se

K otočení postav máme k dispozici dva bloky. Ty otočí naši postavu buď po směru, nebo proti směru hodinových ručiček o zadaný počet stupňů:

Blok otoč se o stupňů - Scratch

Bloky skoč na a klouzej

Blokem skoč na přemístíme postavu, změníme jí tedy hodnoty osy X a Y. Novou pozici můžeme nastavit jako náhodnou, určit ji ukazatelem myši nebo zadáme konkrétní souřadnice:

Blok skoč na - Scratch

Blok klouzej funguje podobně. Postava se dá do pohybu vstříc náhodným hodnotám, ukazateli myši nebo přesně zadaným souřadnicím. Jde o postupné přesouvání na určené místo, u něhož navíc zadáváme, jak dlouho má trvat:

Blok klouzej sekund na - Scratch

Blok nastav směr k

Zde měníme otočení postavy (hodnotu Směr). Nový směr určíme ukazatelem myši nebo jinou postavou, pokud jich máme v projektu více. Dále můžeme zadat přesný počet stupňů otočení:

Blok nastav směr - Scratch

Bloky změň/nastav x/y

Blok změň o vezme aktuální hodnotu x nebo y a přičte/odečte zadanou hodnotu. Blok nastav na vezme aktuální hodnotu a přepíše ji zadanou hodnotou:

Blok nastav/změň x/x - Scratch

Blok když narazíš na okraj, odraz se

Blok zajistí, že naše postava nezajede mimo obraz, který vidíme. Pokud se dotkne okraje, otočí se směrem, odkud přišla, a zůstane zde stát:

Blok když narazíš na okraj, odraz se - Scratch

Blok nastav otáčení

Posledním blokem programově nastavíme jeden ze tří režimů atributu Směr, o kterých jsme si říkali výše:

Blok nastav otáčení - Scratch

Proměnné x, y a směr

Ve spodní části karty Pohyb najdeme ještě proměnné s hodnotami atributů pro danou postavu:

Proměnné x, y, směr - Scratch

Hra na babu

Pojďme si nyní vytvořit slibovanou hru na babu. Po spuštění hry klikneme na postavu (kočičáka) a ten nás bude honit, tj. bude se snažit dohonit kurzor naší myši. Až nás chytí, bude řada na nás. Protože je ale myš moc rychlá, bude se náš kočičák teleportovat na náhodná místa. My se pak na něj budeme snažit kliknout. Tím mu zase babu vrátíme.

Pokud by někdo namítal, že se kočky neteleportují, tak na to odpovím, že většinou ani nemluví. Vzpomeňme si, co všechno už náš kočičák dříve dokázal 🙂

Začneme klasicky startovním blokem, za který umístíme blok čekej dokud nenastane. Z karty Vnímání si půjčíme blok dotýkáš se? a nastavíme mu hodnotu na ukazatele myši. Dále přidáme blok myš stisknuta?. Oba vložíme do bloku a z karty Operátory. Celou podmínku přidáme do bloku čekej dokud nenastane:

Začátek hry na babu - Scratch

Poté si vezmeme cyklus opakuj stále a do něj vložíme dva bloky opakuj dokud nenastane. To celé nalepíme k předchozím blokům:

Hlavní cyklus hry na babu - Scratch

První vnořený cyklus bude obsahovat podmínku dotýkáš se ukazatele myši? a do druhého cyklu přidáme stejnou podmínku, která je v bloku čekej dokud nenastane na začátku programu. Pomocí bloku a v ní tedy spojíme bloky dotýkáš se? a myš stisknuta?:

Hlavní cyklus hry na babu s podmínkami - Scratch

Do prvního vnořeného cyklu za sebe nalepíme bloky nastav směr k s hodnotou ukazateli myši a klouzej sekund na s hodnotami 1 (sekunda) a ukazatel myši:

Tělo prvního podcyklu - Scratch

Do druhého vnořeného cyklu vložíme bloky skoč na s hodnotou náhodná pozice a čekej sekund s hodnotou .5:

Tělo druhého podcyklu - Scratch

Pokud chceme mít hru o něco složitější nebo jednodušší, můžeme v blocích klouzej sekund na a čekej sekund hodnoty zvětšit nebo zmenšit 😉

Mezi cykly ještě vložíme blok skoč na s hodnotou náhodná pozice:

Blok mezi cykly - Scratch

Nad každý cyklus pak umístíme bublinu sekund s texty Mám babu. a A teď ji máš ty.:

Doplnění textů a dokončení programu - Scratch

Program máme hotový. Když jej spustíme a klikneme na kočičáka, začne s námi hrát na babu:

Hra na babu - Scratch

Celý kód hry na babu je jako vždy ke stažení pod článkem 🙂

V příští lekci, Vnímání ve Scratchi, si popíšeme bloky z kategorie Vnímání. Vysvětlíme si, k čemu jednotlivé možnosti slouží, a některé z nich využijeme při tvorbě programu, v němž si zahrajeme s kočičákem na schovávanou.


 

Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 7x (42.59 kB)
Aplikace je včetně zdrojových kódů v jazyce Scratch

 

Předchozí článek
Řešené úlohy k 15.-17. lekci Scratche
Všechny články v sekci
Scratch
Přeskočit článek
(nedoporučujeme)
Vnímání ve Scratchi
Článek pro vás napsal PDoctor
Avatar
Uživatelské hodnocení:
2 hlasů
Aktivity