20 - Animácia II
Úloha 1
Zopakujte si základ animácie. Súradnice x
,y
nastavte na začiatku na spodok obrazovky. V podprograme draw vykreslite text "KONIEC" na súradnice x
,y
a meňte y
súradnicu tak, aby ste vytvorili pohyb textu zdola nahor, ako pri záverečných titulkoch:

Úloha 2
Vytvorte skeč, v ktorom pobehuje zľava doprava žltý krúžok, v každom kole draw
sa posunie o 1
pixel. Ak jeho x
súradnica vybehne za pravý okraj obrazovky, nastaví sa naspäť na 0
:

Úloha 3
Upravíme program tak, aby bola rýchlosť pohybu krúžku meniteľná. Vytvorte novú globálnu premennú rychlost
. Zmeňte program tak, aby sa namiesto o 1
pixel posúval krúžok o rychlost
. Nastavte rychlost
na začiatku programu na náhodné číslo z rozsahu 0.5
až 10
.

Úloha 4
Upravte program tak, aby sa rýchlosť náhodne nastavovala nie len raz na začiatku, ale v každom kole draw
.

Úloha 5
Nastavte úvodnú pozíciu krúžku na stred obrazovky width/2
, height/2
.
Nastavte interval, z ktorého sa vyberá náhodná rýchlosť na (-3, 3)
. Čo spôsobuje záporná rýchlosť?

Úloha 6
Doplňte do programu aj rychlost pre pohyb v smere osi y, napríklad premennú ry
. (A pôvodnú rychlost
si premenujte na rx
). Na začiatku programu aj počas draw
ju náhodne nastavte na číslo z rozsahu (-3,3)
:

Úloha 7
Pohyb krúžku je dosť chaotický. To preto, že sa rx
a ry
menia príliš často. Zmeňte program tak, aby sa rx
a ry
nemenili náhodne pri každom vykreslení, ale len keď stlačím myš:

Úloha 8
Gulička nám vybieha z obrazovky. Zatiaľ sme v programe ošetrili len prípad, že ak vybehne von pravým okrajom, nastaví sa jej x
súradnica na 0
. Doplňte ďalšie tri podmienky do programu:
ak
x
vybehne za ľavý okraj obrazovky, nastaví sax
nawidth
(to je pravý okraj)ak
y
vybehne za dolný okraj obrazovky, nastaví say
na0
(to je horný okraj)ak
y
vybehne za horný okraj obrazovky, nastaví say
naheight
(to je dolný okraj)

Úloha 9
Ukážeme si, ako urobiť odrážanie guličky od okrajov obrazovky.
Teraz máme program napísaný tak, že keď gulička narazí na niektorý z okrajov, skočí na opačný okraj. Takto asi vyzerá váš kód, ktorý to robí:
if (x > width)
{
x = 0;
}
if (y > height)
{
y = 0;
}
if (x < 0)
{
x = width;
}
if (y < 0) {
y = height;
}
Ak chceme, aby sa namiesto skočenia na opačný okraj zmenil smer, budeme potrebovať "otočiť" príslušnú rýchlosť. Ak x
narazí na pravý okraj okraj, zmeníme rx
na -rx
. Takisto aj keď narazí na pravý okraj. A analogicky v prípade y
budeme meniť ry
:
if (x > width)
{
rx = -rx;
}
if (y > height)
{
ry = -ry;
}
if (x < 0)
{
rx = -rx;
}
if (y < 0) {
ry = -ry;
}

Úloha 10 *
Ná zaklade úlohy 9 vyrobte skeč, kde sa takto po obrazovke preháňajú a odrážajú od stien 2 bodky. Vyrobte si premenné x1
, y1
, rx1
, ry1
a premenné x2
, y2
, rx2
, ry2
a rozpohybujte ich podľa tých istých pravidiel ako v Úlohe 9.
Akurát namiesto kreslenia dvoch krúžkov spojte ich súradnice čiarou. Vzniknú vám zaujímavé obrazce:


Last updated