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:
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:
Blok vzdálenost k
Další blok uchovává hodnotu vzdálenosti k ukazateli myši nebo jinému objektu v pixelech:
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 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 x/y myši
Bloky x myši a y myši uchovávají pozici kurzoru myši na scéně:
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:
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:
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:
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ě:
Bloky aktuální datum/dnů od roku 2000
Jak asi tušíme, tyto bloky slouží pro práci s daty:
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:
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ěď
:
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:
Pak přidáme blok skryj se a blok skoč na, který
nastavíme na hodnotu náhodná pozice
:
Poté použijeme cyklus opakuj stále a v něm podmínku když myš stisknuta? tak:
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!
:
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:
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
:
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í.
:
Ú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:
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:
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 7x (45.1 kB)
Aplikace je včetně zdrojových kódů v jazyce Scratch