Java [1241]

Zapisz się
Dodaj kartkę Dodaj bana
Powód wlepienia kartki
Wybierz wątek docelowy z listy lub wpisz jego ID
  • 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

    hej
    Tak da się. Poczytaj o podwójnym buforowaniu.

    pozdrawiam
  • 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

    Pytanie jak mam to podczepic do mojej funkcji paint??

    http://pastebin.com/f7c9b720f
  • 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

    Wielkie dzięki za pomoc.
| |

Wszystko co związane z programowaniem w Java (J2EE, JSP, JDBC, itd) test



Fotki

Miejsca grona (1)