-
V předchozím videu
jsme si ukázali,
-
jak animovat míček
odrážející se od stěn.
-
A to pomocí funkce
"draw" a příkazů "if".
-
Pojďme si to zopakovat.
-
Nejdříve si nastavíme počáteční
proměnné pro polohu a rychlost míčku.
-
Poté máme funkci "draw",
což je speciální funkce,
-
která je přivolávána opakovaně
během celého běhu programu.
-
Překreslíme pozadí a
na plátně vykreslíme elipsu.
-
Tuto elipsu umístíme na základě
polohové a rychlostní proměnné,
-
a na jejich vzájemném vztahu.
-
Bez podmíněných příkazů by náš
míček letěl donekonečna.
-
Anebo dokud bychom
nezmáčkli "restart".
-
Proto jsme sem dolů
přidali dva podmíněné příkazy.
-
Těmi kontrolujeme to,
-
zda se míček přibližuje
k pravé či levé straně obrazovky.
-
V tom případě změníme
rychlost kladně nebo záporně,
-
díky čemuž se
míček odrazí zpátky.
-
Teď tedy máme tento míček,
který se odráží tam a zpět.
-
Pořád dokola.
-
Vypadá to celkem dobře.
-
Nyní můžeme animovat
hodně zajímavých věcí.
-
Ráda bych do programu
přidala uživatelovy interakce.
-
V této chvíli náš program
připomíná televizní seriál.
-
Představte si, že
ho dáte kamarádovi.
-
Pokud neumí programovat,
nemůže s programem nic moc dělat.
-
Může se na něj jen dívat.
-
Bylo by zajímavější, kdyby
s programem mohl něco dělat.
-
Pojďme tedy dát
uživateli nějakou moc.
-
Už jsme se naučili pracovat s dvěma
speciálními globálními proměnnými.
-
Jmenují se mouseX a mouseY.
-
Tyto proměnné vracejí čísla popisující
aktuální pozici uživatelovy myši.
-
S jejich pomocí lze program
snadno udělat interaktivnější.
-
Jak je tedy použijeme?
-
Měli bychom je použít
uvnitř funkce "draw".
-
To je totiž jediný kód,
který je přivoláván opakovaně.
-
Všechno mimo funkci "draw"
je přivoláno pouze jednou.
-
A to při spuštění programu.
-
Čili použít mouseX a mouseY
tam postrádá smysl.
-
Uživatel neměl příležitost
s programem interagovat.
-
Ve funkci "draw" momentálně kreslíme
míček v poloze 200 pixelů směrem dolů.
-
Co kdybychom toto
nahradily s mouseY?
-
To je totiž poloha y.
-
Teď bude poloha y závislá
na uživatelově poloze y.
-
Podívejte na to!
-
Jezdím kurzorem
nahoru a dolů.
-
Tím můžu změnit osu,
po které se kurzor pohybuje.
-
Chtěla bych ale
použít také mouseX.
-
Jak na to?
-
Co kdybychom udělali
další míček?
-
Ten by se pohyboval
opačně: nahoru a dolů.
-
Uživatel bude schopen
ovládat jeho polohu x.
-
Uděláme to teď tedy opačně.
-
Napíšeme: ellipse, mouse X,
poloha 50 a 50.
-
Podívejte na to.
-
Teď ovládám tyto dva míčky
pohybující se v kolmém směru.
-
Pořád ještě nejsem spokojená.
-
Chtěla bych uživateli
dát mnohem více moci.
-
Chtěla bych, aby mohl uživatel
sám spustit druhý míček.
-
Aby ho mohl sám přivolat
pomocí kliknutí myši.
-
Potřebuji tedy zjistit,
jak uživatelovo kliknutí rozeznat.
-
Naštěstí přesně pro to existuje
speciální booleanová proměnná.
-
Jmenuje se mouseIsPressed.
-
A můžeme ji použít ve vnitřku
podmíněného příkazu.
-
Toto je náš druhy míček.
-
Můžeme napsat: if, mouseIsPressed.
-
Následně zde přesuneme
příkaz pro přivolání elipsy.
-
Čili toto říká programu,
-
že chceme nakreslit elipsu,
jen když toto je pravdivé.
-
A mouseIsPressed bude pravdivé
jen při uživatelově zmáčknutí myši.
-
Pojďme to zkusit.
-
Teď můžu míček přivolat
kdykoli při zmáčknutí myši.
-
Takže se objevuje
z paralelního vesmíru.
-
Proměnná mouseIsPressed je zajímavá tím,
-
že se mění na základě toho,
co dělá uživatel.
-
A ne na základě toho,
co dělá program.
-
A protože funkce "draw"
je přivolávána opakovaně,
-
výstup programu
se v průběhu mění.
-
A to s trochou
uživatelova vstupu.
-
Spojením podmíněných příkazů
a mouseIsPressed máte vše potřebné pro to,
-
abyste mohli dělat skvělé věci jako
tlačítka či programy na kreslení.