02 - Animácia - premenné, random
Ak chceme zmenu, potrebujeme premennú
Last updated
Ak chceme zmenu, potrebujeme premennú
Last updated
V predchádzajúcej lekcii sme programovali obrázky pomocou zabudovaných funkcií pre vykreslovanie 2D primitív -> síce o čosi zdĺhavejšie, než vo vašom preferovanom kresliacom programe - ale aspoň sa výsledok nehýbe ani nič navyše nerobí.
Tak sa to môže zdať zvonka na prvý pohľad.
Ale v skutočnosti hneď po inicializovaní aplikácie funkciou setup()
sa následne 60x za sekundu prekreslí nanovo funkciou draw()
- áno, presne ten istý obrázok.
...chcelo by to zmenu a na to tu máme premennú
Knižnica p5.js nám poskytuje hneď niekoľko zabudovaných premenných - netreba ich inicializovať. Sú tam a dajú sa použiť hocikedy.
Napríklad mouseX
a mouseY
- ktoré obsahujú X a Y kordináty vášho kurzoru myši.
Skúsme to použiť:
Na kurzore máme nalepený kruh. Hýbe sa to:
Čo sa stane, ak presunieme background(220);
z funkcie draw()
do funkcie setup()
?
Teraz ak chceme zresetovať stav a začať "odznova" - musíme vypnúť/zapnúť sketch...
Event je špeciálna - trpezlivá - funkcia, ktorá nič nerobí a čaká na svoju chíľu - keď nastane definovaná udalosť.
Pre náš prípad ideme defunovať funkciu (áno, event je tiež funkcia), ktorá po kliknutí myšou zmaže všetko, čo bolo doposiaľ do canvasu nakreslené:
Link pre vyskúšanie: https://editor.p5js.org/igor-kamil/sketches/TeuSy28tH
Syntax pre definovanie vlastnej premennej: let premenna
Život (globálnej) premennej by mal pozostávať z 3. krokov:
deklarácia (na začiatku sketchu)
inicializácia (pridelenie prvej hodnoty v setup()
)
použitie v kóde
Jedna z možností, ako priniesť "zmenu" do aplikácie je použiť zabudovanú funkciu random()
V horespomínanom príklade používame ďaľšie zabudované funkcie: width
, height
, windowWidth
a windowHeight
Takto definovaný sketch má vždy veľkosť obrazovky. Od teraz nemáme pod kontrolou, koľko pixlov budeme mať k dispozícií vopred - avšak taká je povaha webového prostredia, kde nevieme dopredu, či si váš sketch pozrie niekto na fullHD monitore alebo na smartphone.
AK si chceš pozrieť svoj sketch fullscreen: File -> Share -> Fullscreen
Napr. https://editor.p5js.org/igor-kamil/full/mPmeIX4EP
Vytvor sketch, kde pomocou mouseX/mouseY a pmouseX/pmouseY vieš kresliť, ako v kresliacom programe. Zapoj random()
pre farby. Uprav program, aby zrkadlovo krelil to isté:
Jednoduchý kresliaci program: