Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Java]Migający ekran - optymalizacja
Forum PHP.pl > Forum > Przedszkole
Dapi
Witam.
Temat może luźniej związany z webmasterką, ale myślę, że można go tu podciągnąć wink.gif

Na programowanie do szkoły mam do napisania (niestety w Javie) prostą grę, którą chyba każdy zna - Węża.
Wszystko fajnie poszło, większych błędów w działaniu nie widzę, chociaż grę dopiero testuję, jednak mam problem jak mi się wydaje z optymalizacją kodu.

Z początku gra działa ładnie, w miarę płynnie. Niestety po zjedzeniu ~8 monet (a co za tym idzie wydłużeniem się węża) zaczyna migać ekran,
tzn. wszystko znika i mija chwila zanim obraz pojawi się od nowa. Mierzyłem czasy poszczególnych operacji i nie zauważyłem nigdzie wąskiego gardła.

W pierwszej wersji pozycje węża przechowywane było w tablicy i obrabiane potem pętlą for. Dawało to lepsze wyniki w testach szybkości, ale tylko
na początku, kiedy wąż miał kilka klocków. Przy dłuższym wężu lepiej sprawdza się obecne rozwiązanie oparte o stringi.

Java nie jest moją najmocniejszą stroną, dlatego zwracam się do Was z prośbą o pomoc.
Po pierwsze: z czego się ten problem bierze?
Po drugie: w jaki sposób mogę zoptymalizować jeszcze kod, żeby efekt migającego ekranu wyeliminować?


KOD PROGRAMU:
-> http://www.wklejto.pl/204183


Jako, że to projekt do szkoły, na który miałem niecałe 3 dni, a na codzień z Javą mam niewiele wspólnego, więcej uwagi skupiłem na tym,
żeby to w ogóle działało jak należy i żeby w grze nie było bugów, niż na pięknym kodzie i dobrych praktykach. Kod okomentowany, myślę,
że da się w nim połapać.

Liczę na pomoc specjalistów smile.gif

Pozdrawiam.
memory
https://www.youtube.com/watch?v=D2bJ60CKS3c
poczytaj o DoubleBuffered
Crozin
@memory już podał odpowiedź na problem, ale... Zlituj się nad samym sobą i skorzystaj z listy punktów (List, Point), a do debugowania kod wykorzystaj debuggera i profilera - w Javie to na prawdę proste.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.