Hoi,
ich bau wiede rin Java
Ich hab ne simple Animation gemacht, ein Bild wird einfach von seiner aktuellen position aus nach oben bewegt, allerdings zieht es dabei schlieren
Kurz und knapp:
Wie bekomm ich die schlieren weg?
Muss ich da immer den entsprechenden bereich neu einfärben oder gibts da ne andere Lösung?
Danke
Nudel
PS:
Ich hab hier noch das ganze mal geziped:
https://www.progam0r.de/czechman/czechman.zip
Das kann man ausführen und angucken
ich bau wiede rin Java
Ich hab ne simple Animation gemacht, ein Bild wird einfach von seiner aktuellen position aus nach oben bewegt, allerdings zieht es dabei schlieren
Kurz und knapp:
Wie bekomm ich die schlieren weg?
Muss ich da immer den entsprechenden bereich neu einfärben oder gibts da ne andere Lösung?
Danke
Nudel
PS:
Ich hab hier noch das ganze mal geziped:
https://www.progam0r.de/czechman/czechman.zip
Das kann man ausführen und angucken
PHP:
import java.awt.*;
import java.awt.event.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Random;
import java.util.Scanner;
import java.util.Date;
import java.io.*;
import java.util.Date;
import java.text.*;
/**
*
* Beschreibung
*
* @version 1.0 vom 05.02.2007
* @author
*/
public class Czechman extends Frame {
// Anfang Variablen
private Button button1 = new Button();
Image[] im = new Image[9];
int x =0;
private Image dbImage;
private Graphics dbg;
// Ende Variablen
public Czechman(String title) {
// Frame-Initialisierung
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) { System.exit(0); }
});
int frameWidth = 902;
int frameHeight = 460;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2 ;
setLocation(x, y);
setLayout(null);
// Anfang Komponenten
im[0] = Toolkit.getDefaultToolkit().createImage( "images/bild_01.jpg" );
button1.setBounds(420, 230, 75, 25);
button1.setLabel("Los!");
add(button1);
// Ende Komponenten
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button1ActionPerformed(evt);
}
});
setResizable(false);
setVisible(true);
}
// Anfang Ereignisprozeduren
public void button1ActionPerformed(ActionEvent evt) {
new Thread(new animation()).start();
}
// Double Buffering um flackern zu reduzieren
public void update (Graphics g){
if (dbImage == null)
{
dbImage = createImage (this.getSize().width, this.getSize().height);
dbg = dbImage.getGraphics ();
}
dbg.drawImage(im[0],20,200-x,this);
paint (dbg);
g.drawImage(im[0],20,200-x,this);
}
public void paint(Graphics g) {
g.drawImage(im[0],20,200-x,this);
}
// erzeugt die pseudo animation, implements Runnable da es ein extra Thread ist.
class animation implements Runnable {
public void run() {
int i = 0;
while(i<=50){
try{
x=i*3;
System.out.println("x cords:"+ x);
Thread.sleep(10);
repaint();
}catch(Exception e){
System.out.println("Fehler");
}
i+=1;
}
while(i>=0){
try{
x=i/3;
System.out.println("x cords:"+ x);
Thread.sleep(10);
repaint();
}catch(Exception e){
System.out.println("Fehler");
}
i-=1;
}
}
}
// Ende Ereignisprozeduren
public static void main(String[] args) {
new Czechman("Czechman");
}
}