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

Ú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):

Premenné rx a ry určujú o koľko pixelov sa pri každom vykreslení krúžok pohne.

Ú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í sa x na width (to je pravý okraj)

  • ak y vybehne za dolný okraj obrazovky, nastaví sa y na 0 (to je horný okraj)

  • ak y vybehne za horný okraj obrazovky, nastaví sa y na height (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