Liebe Community,
in Slick wird durchgehend
|
Quellcode
|
1
|
public void render(GameContainer container, StateBasedGame game, Graphics g) throws SlickException {}
|
aufgerufen, um etwas in den GameContainer zu zeichnen.
Hierbei habe ich die Möglichkeit, dem GameContainer zu sagen, ob er jeden Frame das Bild clearen soll oder nicht. Ich will das Bild aber nur zum Teil clearen, man muss sich meine Idee so wie zwei Ebenen vorstellen.
- Auf der hinteren Ebene soll ohne clear einfach die ganze Zeit auf das alte Bild draufgezeichnet werden, wenn ich also pro Frame einen Punkt zeichne, der sich bei jedem Frame etwas bewegt, entsteht nach und nach eine Linie.
- Auf der oberen Ebene sind Buttons, Text und noch einige Spielelemente, die natürlich nicht immer nur draufgezeichnet werden, sondern wo jedes mal das Bild "gecleared" werden muss.
Meine Idee war also, dass ich für die
hintere Ebene ein Image anlege mit dazugehöriger Grafik:
|
Quellcode
|
1
|
final Image i = new Image(WIDTH, HEIGHT);final Graphics ig = i.getGraphics();
|
Dann könnte ich in der render-Methode folgendes tun:
|
Quellcode
|
1
|
public void render(GameContainer container, StateBasedGame game, Graphics g) throws SlickException { ig.fillOval(...); ig.flush(); g.drawImage(i,0,0); }
|
Aber irgendwie funktioniert es nicht so wie geplant. Entweder habe ich einen schwarzen Bildschirm oder wenn ich das flush() weglasse ein flackerndes Bild mit Inhalten, die da gar nicht reingehören.
Vielleicht kennt sich ja einer von euch besser mit Slick aus und kann mir einen Tipp geben.
Mit freundlichem Gruß:
Marcel Gebhardt