# Scrolling Repaint Problem



## mrgrimmig (23. Jan 2012)

Hallo Java-Forum,
da ich Hochschultechnisch auf Java-Programmierung umgestiegen bin und interessiert an Spieleentwicklung bin, habe ich nun mal angefangen, mir mein eigenes kleineres (bisher zumindest) Spiel zu programmieren.

Und schon bin ich auf ein Problem gestoßen, welches ich mir erstens nicht erklären kann und ich zweitens auch keine Ahnung habe, wonach ich googlen soll..

Und zwar folgendes:
Mein Spiel wird auf einem JPanel gezeichnet, welches sich in einem JFrame befindet.
Über die Methode 
	
	
	
	





```
public void paintComponent(Graphics g)
```
 zeichne ich alles, was ich bisher benötige, besser gesagt: Ich rufe die Methoden der einzelnen Instanzen zum zeichnen auf.
So weit so gut.
Die Methode draw (die jeweils aufgerufen wird) sieht in der Klasse Ape z.B. so aus:

```
public void draw(Graphics g)
{
   g.drawImage(sprite, x - board.getX(), y - board.getY(), null);
}
```

Das BufferedImage sprite wird hier an der Position relativ zur Verschiebung des JPanels gezeichnet.
Mit Verschiebung mein ich zwei Variablen die fürs Scrollen zuständig sind.

Wenn ich nun mit der Maus durch das Level scrolle funktioniert auch alles.
Nun aber zum Problem:
Sobald sich eine Instanz zu Beginn des Spiels am äußeren Rand des Sichtbereichs befindet treten die für mich unerklärlichen Probleme auf.
Das Bild wird nicht mehr komplett neugezeichnet sondern über das alte drüber.
In meiner GameLoop wird übrigens auch die repaint-Methode aufgerufen.

Beispiel:


----------



## Gast2 (23. Jan 2012)

Schaut nach nem fehlen von 
	
	
	
	





```
super.paintComponent(g);
```
 bzw. 
	
	
	
	





```
super.paint(g);
```
 aus.


----------



## mrgrimmig (23. Jan 2012)

Jetzt, nach einem Tag Recherche bin ich selbst auf die Lösung gekommen..
Es lag an getX() und getY(). Hat sich nicht vertragen, da Board von JPanel erbt..
Na immerhin bin ich nun im Forum angemeldet


----------

