-
Halo #maciek
Witam chciałbym zapytać się o pewną rzecz i zaprezentowac moją pierwszą graficzną grę w Javie.
Kod źródłowy:
http://pastebin.com/f7c9b720f
aby gra działała poprawnie należy utworzyć plik wynik.txt w katalogu kompilacyjnym i .
moje pytanie brzmi. jak pozbyc się tego migania(częstego odświeżania strony) żeby kółko poruszało się płynnie. Nie wydaje mi się że jest to wina karty graficznej bo testowałem ten program na czterech komputerach wyposażonych w bardzo dobre kasrty graficzne i procesory.
Korzystałem z biblioteki 'awt' i chciałbym narazie przy niej zostać. Czy da się to jakoś zoptymalizować korzystając tylko i wyłącznie z awt ??napisać w nim jakąś wartość liczbową. -
Marcin
-
Halo #maciek
Poczytałem na ten temat, ale nie zrozumiałem jak zastosowac to w praktyce, tymbardziej, że to moje 4 zajęcia w API. Mozesz mi to pokazac na zwyklej funkci paint?? Jak sie to stosuje w praktyce? -
-
the_javu
Przecież odpowiedziałem w wątku obok. Kwestia stworzenia obrazka (createImage) i rysowania go w kontekscie (drawImage). -
Halo #maciek
-
the_javu
//dodać do klasy pola offscreen i dim;
private Image offscreen;
private Dimension dim;
public hipno()
{
//...
//dodać tworzenie obrazka w konstruktorze
dim = getSize();
offscreen = createImage(dim.width,dim.heig ht);
///...
}
//dodać metodę update
public void update(Graphics g)
{
paint(g);
}
//dodać metodę updateOffscreen()
///...wyciąć całą zawartość paint i przerzucić tej metody
public void updateOffscreen()
{
Graphics g = offscreen.getGraphics();
g.clearRect(0,0,dim.width,dim. width);
//zawartość Twojego paint(), nie musisz przemianować zmiennej g
//.....
}
///samą zaś metodę paint napisać tak:
public void paint(Graphics g)
{
//uwaga: tutejsze "g" i "g" z updateOffscreen to dwie inne zmienne
updateOffscreen();
g.drawImage(offscreen,0,0,this );
} -
Halo #maciek
Podobne Tematy
|
|
Wszystko co związane z programowaniem w Java (J2EE, JSP, JDBC, itd) test
Miejsca grona (1)
-
Kino Luna ul. Marszałkowska, Warszawa
www.kinoluna.pl kino.luna@maxfilm.com.pl 22 621 78 28
- Dodaj miejsce

