Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 19 - Vnímání ve Scratchi

V minulé lekci, Pohyb ve Scratchi, jsme si popsali bloky pro pohyb, které Scratch nabízí. Některé z nich jsme si pak vyzkoušeli při tvorbě programu, v němž jsme s kočičákem hráli na babu.

V dnešním Scratch tutoriálu si blíže popíšeme bloky z kategorie Vnímání. Vysvětlíme si, k čemu jednotlivé možnosti slouží. Některé z nich pak využijeme při tvorbě programu, v němž si s kočičákem zahrajeme na schovávanou.

Bloky Vnímání

V předchozích lekcích jsme občas některé bloky z kategorie Vnímání využili. Dobře známe především bloky otázka a odpověď. Protože by byla škoda se nedozvědět i o ostatních, pojďme si je tedy nyní také představit.

Bloky dotýkáš se

Jako první zde máme bloky umožňující zjistit, zda se něčím dotýkáme něčeho jiného:

Bloky zaznamenávající dotek - Scratch

Podle jejich tvaru již poznáme, že se všechny používají v podmínkách. V nabídce máme tři druhy těchto bloků:

  • dotýkáš se – Díky tomuto bloku zjistíme, zda se postava dotýká ukazatele myši, okraje obrazovky nebo jiné postavy.
  • dotýkáš se barvy – Druhým blokem ověříme, zda se postava dotýká určité barvy.
  • barvou se dotýkáš – Třetí blok porovnává, zda se určitá barva dotýká nějaké další barvy.

Mějme například postavu našeho kočičáka a jablko. První blok by splnil podmínku hned při doteku kočičáka a jablka. Druhý blok nastavený na zelenou barvu by při doteku s červeným jablkem nic neudělal. Podmínka by byla splněna tehdy, kdybychom se dotkli například zeleného listu jablka. Posledním blokem můžeme například zjistit, zda se zelený list dotýká červeného jablka. Pokud ho kočičák utrhne, podmínka už platit nebude.

Pro výběr konkrétní barvy v uvedených blocích využijeme ikonu kapátka:

Výběr barvy kapátkem - Scratch

Blok vzdálenost k

Další blok uchovává hodnotu vzdálenosti k ukazateli myši nebo jinému objektu v pixelech:

Blok vzdálenost k - Scratch

Bloky otázka a odpověď

Následující bloky již dobře známe. Pomocí bloku otázka vyvoláme otázku, na kterou uživatel odpoví. Blok odpověď pak nese to, co uživatel napsal:

Bloky otázka a odpověď - Scratch

Bloky klávesa/myš stisknuta

V bloku klávesa stisknuta nastavíme určitou klávesu a poté reagujeme na její stisknutí. Pokud potřebujeme ověřit, zda je stisknuta myš, použijeme druhý blok:

Bloky klávesa/myš stisknuta - Scratch

Bloky x/y myši

Bloky x myši a y myši uchovávají pozici kurzoru myši na scéně:

Bloky x/y myši - Scratch

Blok povoleno přesouvat

Tento blok je trochu problematický, protože jeho účinek hned nepoznáme. Určujeme v něm, jestli uživatel může postavu nebo objekt na scéně chytit myší a přesunout jinam:

Blok povoleno přesouvat - Scratch

Když program vyvíjíme, tak je tato funkce povolena vždy. Pokud ji tedy chceme otestovat, musíme program publikovat a spustit jej mimo vývojový režim.

Blok hlasitost

Blok uchovává informaci o hlasitosti okolí. Pokud ho chceme použít, nejprve musíme Scratchi povolit přístup k mikrofonu. Blok potom nese hodnotu od 1 do 100 podle toho, jak hlasité naše okolí je:

Blok hlasitost - Scratch

Bloky stopky/vynuluj stopky

Blokem stopky zobrazíme počet sekund od spuštění programu. Blok vynuluj stopky tuto hodnotu potom vrátí na 0 a odpočet běží znovu:

Bloky stopky a vynuluj stopky - Scratch

Blok informace z objektu

Tento blok využijeme až ve složitějších programech. Umožní nám získat informaci o jiném objektu nebo o jiné scéně:

Blok informace z objektu - Scratch

Bloky aktuální datum/dnů od roku 2000

Jak asi tušíme, tyto bloky slouží pro práci s daty:

Bloky pro práci s datem - Scratch

Prvním blokem získáme aktuální rok, měsíc, den, hodinu a další. Druhý blok vrátí počet dnů od roku 2000. Tuto hodnotu vrací v podobě desetinného čísla. Započítávají se sem i hodiny, minuty, sekundy a milisekundy. Není tedy výjimkou, když se dozvíme, že od roku 2000 uplynulo již 8778.414251898148 dní 🙂

Blok jméno uživatele

Poslední blok z kategorie Vnímání vrátí jméno aktuálně přihlášeného uživatele:

Blok jméno uživatele - Scratch

Hra na schovávanou

Pojďme si nyní některé z uvedených bloků vyzkoušet. V lekci Pohyb ve Scratchi jsme s kočičákem hráli na babu, dnes si zahrajeme na schovávanou. Kočičáka budeme hledat klikáním myší na "prázdnou" obrazovku. V rohu obrazovky se nám bude ukazovat nápověda. Protože je kočičák na poměry obrazovky celkem velký, tak se nás na začátku zdvořile zeptá, o kolik se má zmenšit 😉

Nastavení velikosti postavy

Začneme klasicky startovním blokem. Za ten nalepíme bublinu sekund s textem Pojďme si zahrát na schovávanou. a přidáme blok otázka s textem Jak velký mám být? Čím větší budu, tím lehčí bude mě najít :-). Na konci bude blok nastav velikost na s hodnotou odpověď:

Nastavení velikosti kočičáka - Scratch

Dále vezmeme blok spoj a spojíme text Dobře, budu velký (s mezerou na konci) a blok velikost. To celé dáme do dalšího bloku spoj s textem %, pojďme hrát! (s mezerou na začátku) a vše dáme do bubliny sekund, kterou nalepíme za náš program:

Začátek hry na schovávanou - Scratch

Pak přidáme blok skryj se a blok skoč na, který nastavíme na hodnotu náhodná pozice:

Kočičák se schoval - Scratch

Poté použijeme cyklus opakuj stále a v něm podmínku když myš stisknuta? tak:

Cyklus reagující na stisk myši - Scratch

Doplnění nápovědy

Do podmínky vložíme podmínku když tak jinak a budeme v ní zjišťovat, zda je vzdálenost k ukazateli myši < 20. Dále si vytvoříme proměnnou Nápověda. Ve větvi tak nastavíme proměnnou Nápověda na hodnotu Hoří!, přidáme bloky ukaž se a bublina sekund s textem Gratuluji, vyhrál jsi!:

Kočičáka jsme našli - Scratch

Ve větvi jinak do sebe vnoříme další tři bloky když tak jinak (vždy do větve jinak v předchozím bloku) a do poslední větve jinak umístíme blok když tak:

Příprava podmínek pro nápovědu - Scratch

Teď si připravíme tři bloky větší než a jeden blok menší než. Na levé strany všech těchto bloků umístíme blok vzdálenost k ukazateli myši. Na pravé strany postupně napíšeme hodnoty 400, 300, 100 a 101:

Určení vzdálenosti kočičáka od myši - Scratch

Všimněme si, že předposlední blok má hodnotu větší než 100, takže platí od hodnoty 101 a víc. Poslední blok má tedy hodnotu menší než 101, takže platí od hodnoty 100 a méně 😉

Bloky postupně doplníme do připravených podmínek v programu a každé přidáme i blok pro nastavení nápovědy na hodnoty Samá voda!, Malý plamínek., Přihořívá... a Už to pálí.:

Nastavení nápovědi dle vzdálenosti - Scratch

Úprava startovní pozice a zobrazení nápovědy

Mezi startovní blok a první bublinu doplníme bloky ukaž se, nastav velikost na s hodnotou 100, skoč na x: y: s hodnotami 0 a nastav ... na, kde bude mít proměnná Nápověda prázdnou hodnotu:

Dokončení programu na schovávanou - Scratch

Nakonec ještě zaškrtneme políčko před proměnnou Nápověda, aby se nám zobrazovala v okně programu. Když teď program spustíme, kočičák s námi hraje na schovávanou:

Kočičák hraje na schovávanou - Scratch

Zdrojový kód je jako vždy ke stažení pod článkem 🙂

V následujícím cvičení, Řešené úlohy k 18.-19. lekci Scratche, si procvičíme nabyté zkušenosti z předchozích lekcí.


 

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 6x (45.1 kB)
Aplikace je včetně zdrojových kódů v jazyce Scratch

 

Předchozí článek
Pohyb ve Scratchi
Všechny články v sekci
Scratch
Přeskočit článek
(nedoporučujeme)
Řešené úlohy k 18.-19. lekci Scratche
Článek pro vás napsal PDoctor
Avatar
Uživatelské hodnocení:
Ještě nikdo nehodnotil, buď první!
Aktivity