Hallo liebe Java Community,
ich wende mich an euch, da ich nach stundenlangem ausprobieren nicht mehr weiter komme
Ich hoffe ihr könnt mir weiterhelfen, ich bin daher für jede Hilfe dankbar.:toll:
Mein Problem liegt in der Animation von 3 Bildern die sich ineinader verschieben. Hierbei ist jedoch auffälig, dass 2 Bilder durch den Double-Buffer flüssig dargestellt werden, das dritte jedoch nicht
Zuerst werden 2 Bilder aus einer Datei geladen, dass dritte Bild wird später durch einen CropImageFilter erstellt.
Mein Double-Buffer
Hier werden die Bilder gezeichnet
Und zum Schluss noch die Erstellung des 3 Bildes, das leider flackert
Vielleicht ist es noch wichtig zu sagen das ich die picture3create hinter der Prozedur hängen muss die den x-wert verändert, nämlich wenn man wasd drückt, sodass man durchs bild steuert wobei sich dieses verändert! Schonmal Danke für eure Hilfe
ich wende mich an euch, da ich nach stundenlangem ausprobieren nicht mehr weiter komme
Ich hoffe ihr könnt mir weiterhelfen, ich bin daher für jede Hilfe dankbar.:toll:
Mein Problem liegt in der Animation von 3 Bildern die sich ineinader verschieben. Hierbei ist jedoch auffälig, dass 2 Bilder durch den Double-Buffer flüssig dargestellt werden, das dritte jedoch nicht
Zuerst werden 2 Bilder aus einer Datei geladen, dass dritte Bild wird später durch einen CropImageFilter erstellt.
Java:
public void init()
{
bild1 = getImage(getCodeBase(), "bild1.jpg");
bild2 = getImage(getCodeBase(), "bild2.jpg");
prepareImage(bild1, this);
prepareImage(bild2, this);
prepareImage(bild3, this);
}
Mein Double-Buffer
Java:
//Double-Buffer
@Override
public void update(Graphics g)
{
//Double-Buffer initialisieren
if (dbImage == null) {
dbImage = createImage(
this.getSize().width,
this.getSize().height
);
dbGraphics = dbImage.getGraphics();
}
//Hintergrund löschen
dbGraphics.setColor(getBackground());
dbGraphics.fillRect(
0,
0,
this.getSize().width,
this.getSize().height
);
//Vordergrund zeichnen
dbGraphics.setColor(getForeground());
paint(dbGraphics);
//Offscreen anzeigen
g.drawImage(dbImage,0,0,this);
}
Hier werden die Bilder gezeichnet
Java:
@Override
public void paint(Graphics g)
{
// Background zeichen
g.drawImage(bild1, 0, 0, this);
g.drawImage(bild2, 1200-x, 0, this); // Bild verschiebt sich durch Änderung des x-Wertes
g.drawImage(bild3, 0, 0, this);
}
Und zum Schluss noch die Erstellung des 3 Bildes, das leider flackert
Java:
public void picture3create()
{
ImageFilter cropFilter = new CropImageFilter(x, 0, 1200-x, 800);
bild3 = createImage(
new FilteredImageSource(bild1.getSource(),cropFilter));
}
Vielleicht ist es noch wichtig zu sagen das ich die picture3create hinter der Prozedur hängen muss die den x-wert verändert, nämlich wenn man wasd drückt, sodass man durchs bild steuert wobei sich dieses verändert! Schonmal Danke für eure Hilfe