animace
Class PaintControl

java.lang.Object
  extended by animace.PaintControl

public class PaintControl
extends java.lang.Object

Tato třída slouží ke kontrole kreslení různých objektů, může měrit jak často jsou tyto objekty překreslovány (fps). Metody objectMoved a objectPainted jsou synchronizované, protože se předpokláda, že pohyb objektu a jeho vykreslování jsou řízeny různými vlákny. Potom PaintControl zařídí, že se s objektem nepohne dříve, dokud není jeho pozice také nakreslena.


Field Summary
 int framesCount
          Počet snímků = počet zavolání metody objectPainted.
 int movesCount
          počet pohybů = počet zavolání metody objectMoved,
 boolean painted
          painted, kontrolní podmínková proměnná.
 
Constructor Summary
PaintControl()
           
 
Method Summary
 double countFps()
          Počítá FPS, jak aktuální, tak i průměrné.
 void fps(boolean val)
          Nastaví, zda bude PaintControl počítat, jak často je objekt překreslován
 double getAverageFps()
          Vrací průměrné FPS od doby kdy bylo zapnuto počítání metodou fps(true) do doby než je opět vypnuto.
 double getFps()
          Vrací aktuální FPS
 double getMaxFps()
          Vrací maximální FPS
 double getMinFps()
          Vrací minimální FPS
 void objectMoved()
          Když se s objektem pohne a je zavolána tato metoda, pozastaví se vlákno a čeká, než vlákno které se stará o vykreslování zavolá metodu objectPainted().
 void objectPainted()
          Tato metoda vzbudí případné vlákno, které čekalo, než je objekt znovu překereslen.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

painted

public boolean painted
painted, kontrolní podmínková proměnná. Z vnějšku by se neměla měnit jinak, než přes metody objectMoved a objectPainted, Není důvod porč by nemohla být private. :-)


framesCount

public int framesCount
Počet snímků = počet zavolání metody objectPainted.


movesCount

public int movesCount
počet pohybů = počet zavolání metody objectMoved,

Constructor Detail

PaintControl

public PaintControl()
Method Detail

objectMoved

public void objectMoved()
Když se s objektem pohne a je zavolána tato metoda, pozastaví se vlákno a čeká, než vlákno které se stará o vykreslování zavolá metodu objectPainted().


objectPainted

public void objectPainted()
Tato metoda vzbudí případné vlákno, které čekalo, než je objekt znovu překereslen.


countFps

public double countFps()
Počítá FPS, jak aktuální, tak i průměrné. Pro akutální FPS je nutné použít metodu System.nanoTime(), která je v SDK od verze SDK 1.5 odkomentujte text, v případe, že pouzivate tuto verzi nebo vyšší.


fps

public void fps(boolean val)
Nastaví, zda bude PaintControl počítat, jak často je objekt překreslován


getFps

public double getFps()
Vrací aktuální FPS


getAverageFps

public double getAverageFps()
Vrací průměrné FPS od doby kdy bylo zapnuto počítání metodou fps(true) do doby než je opět vypnuto.


getMaxFps

public double getMaxFps()
Vrací maximální FPS


getMinFps

public double getMinFps()
Vrací minimální FPS