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 😉