Witam, mam problem z migotaniem w grze - snake. Używam podwójnego buforowania. Czy ktoś ma pomysł jak to naprawić ? Oto kod - http://4programmers.net/Pastebin/4166
0
0
Czy ktoś może wpadł na jakiś pomysł ? Goni mnie trochę czas i z tego powodu odświeżam, a sam nic nie mogę wymyślić.
0
a zakomentuj może tą linię:
g.clearRect(0, 0, BOX_WIDTH * GRID_WIDTH + 10, BOX_HEIGHT * GRID_HEIGHT + 20);
skoro i tak przykrywasz cały ekran gry tylnym buforem, to nie musisz czyścić ekranu
0
Po zakomentowaniu jest wszystko idealnie, tylko pozostaje ślad po wężu.
0
To wyczyść ten tylny bufor przed rysowaniem:
public void Draw(Graphics g)
{
//g.clearRect(0, 0, BOX_WIDTH * GRID_WIDTH + 10, BOX_HEIGHT * GRID_HEIGHT + 20); to usuwamy
//create a new image
BufferedImage buffer = new BufferedImage(BOX_WIDTH * GRID_WIDTH + 10, BOX_HEIGHT * GRID_HEIGHT + 20, BufferedImage.TYPE_INT_ARGB);
Graphics bufferGraphics = buffer.getGraphics();
//zamalowujemy na czarno tylny bufor
bufferGraphics.clearRect(0, 0, BOX_WIDTH * GRID_WIDTH + 10, BOX_HEIGHT * GRID_HEIGHT + 20);
//rysujemy
DrawFruit(bufferGraphics);
DrawGrid(bufferGraphics);
DrawSnake(bufferGraphics);
DrawScore(bufferGraphics);
//flip
g.drawImage(buffer, 0, 0, BOX_WIDTH * GRID_WIDTH + 10, BOX_HEIGHT * GRID_HEIGHT + 20, this);
}
0
Śmiga, dzięki za pomoc.