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
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:
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:
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
Code:
public void paintComponent(Graphics g)
So weit so gut.
Die Methode draw (die jeweils aufgerufen wird) sieht in der Klasse Ape z.B. so aus:
Java:
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:
