Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Początkujący - problem z rozmazywaniem grafiki


Rekomendowane odpowiedzi

Opublikowano

Witam. Na wstępie zaznaczam, że jestem początkujący. Otóż chciałem napisać program, który wyświetla na ekranie kulkę, którą można sterować dzięki klawiszom WSAD. Kulka jest, wszystko śmiga ale niestety(nie wiem jeszcze jak to fachowo nazwać) po wykonaniu określonego ruchu kulka zostawia za sobą ślad w postaci coraz dłuższej linii.

Wklejam fragment kodu odpowiedzialny za rysowanie i ruch.

class MojPanel extends JPanel
{
	private int pozx=100, pozy=100, vx=5, vy=5, r=40, vx1=5;
	private Color k=Color.WHITE;
	
	public MojPanel()
	{
		super();
		setBackground(k);
	}
	
	public void ruch_prawo()
	{
		if((pozx+r)>=getWidth())
			pozx=getWidth()-r;
		pozx+=vx;
		repaint();
	}
	
	public void ruch_lewo()
	{
		if(pozx<=0)
			pozx=0;
		pozx-=vx;
		repaint();
	}
	
	public void ruch_dol()
	{
		if(pozy>=getHeight())
			pozy=getHeight()-r;
		pozy+=vy;
		repaint();
	}
	
	public void ruch_gora()
	{
		if((pozy)<=0)
			pozy=0;
		pozy-=vy;
		repaint();
	}
	
	@Override
	public void paintComponent(Graphics g)
	{
		g.setColor(Color.BLUE);
		g.fillOval(pozx, pozy, r, r);
	}
}

Nie oczekuję gotowego rozwiązania, jeśli ktoś mógłby mnie naprowadzić byłbym wdzięczny :)

Opublikowano

Przed rysowaniem powinieneś czyścić obszar, na którym już coś narysowałeś :)

dziękuję bardzo, problem rozwiązany :)

Niby mały błąd a tyle z nim kłopotu :)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...