Animácie




Nasledujúce ukážky animujú tak, že prekresľujú obrázky, z ktorých každý zobrazuje nejakú časť udalosti. Ak sa snímky prekresľujú rýchlo za sebou, tak sa nám zdá, že objekt sa pohybuje.

Vytvorenie animácií má dve časti:
  1. vytvorenie nadväzujúcich snímkov animácie
  2. napísanie kódu, ktorý obrázky zobrazí za sebou.





Najprv treba deklarovať
pole triedy Image:

   Image menoPolaObrazkov[];
   Pri deklarácii poľa netreba
   zadávať počet jeho prvkov.



  Nahratie obrázkov sa robí v inicializácii
   appletu: public void init()
   for (int i = 0; i < 6; i++)
   obrazok[i] = getImage (getCodeBase(), menoobr[i]);






Applety s animáciou:


Pozrite si zdroj predchádzajúcich appletov, ktoré sa líšia iba snímkami. Používajú thready.





Čo je THREAD?





Tieto applety využívajú thready - vlákna, toky.

Thread je tok prevádzania programu.


Aby pri prekresľovaní obrazovky program nečakal, tak sa spustí ďalšie vlákno behu programu.
Java dovoľuje programom, aby pomocou threadov vykonávali niekoľko rôznych programových krokov. Teda každý program je už sám osebe thread, pretože v ňom dochádza k jednej akcii.
Pri animácii sa thread využíva na to, aby počas čakania na zobrazenie ďalšieho snímku applet nestál. Preto sa vytvorí druhý thread - ďalší tok prevádzania programu.

V applete na použitie threadu uvedieme:
thread mojevlakno = new thread();
Thread sa musí spustiť metódou start: mojevlakno.start();


Metóda start() vykoná metódu run() threadu. Po spustení threadu sa metóda okamžite vracia na začiatok, ale hlavný thread programu pokračuje. Obrázky animácie sa prekresľujú práve v metóde run().





Zlepšenie výkonnosti animácie






Ako zlepšenie výkonnosti animácií v appletoch sa používa prekresľovanie iba nevyhnutnej časti okna. Napríklad, ak sa po obrazovke pohybuje malý obrázok, môžete použiť dve metódy:
  1. prekresliť celú plochu pozadia a potom nakresliť obrázok na novej pozícii
  2. definovať časť plochy, ktorú je treba prekresliť, a potrebné operácie urobiť iba s ňou.

Prvá metóda je neefektívna. Nasledujúce príklady ilustrujú použitie druhej metódy v applete.

Postup pri animácii:

  1. do pamäte vložíme plochu, ktorú treba prekresliť (obdĺžnik "staraPlocha")

  2. vypočítame nové súradnice polohy a otestujeme ich

  3. zapamätáme novú plochu, podľa nových súradníc

  4. určíme zjednotenie plôch - obnovenie (metóda union)

  5. prilepíme obnovenú plochu do obrázka (metóda clipRect)













Zobrazenie zdroja appletu AUTÍČKO:






Ešte malý prídavok: