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