Hallo zusammen,
Das Problem ist folgendes:
Ich habe in der paintComponent-Methode einen Timer erstellt, welche die Animation eines gezeichneten Bildes erzeugen soll. Wenn ich das Programm nun laufen lasse, erfolgt die Animation nur teilweise, d.h. manmachal macht es die richtigen Sprünge (-20) im 1-Sekunden-Takt und manchaml springt es wild durcheinander an Stellen an denen es vorgesehen ist (also nur in der y-Achse).
Das Problem ist folgendes:
Ich habe in der paintComponent-Methode einen Timer erstellt, welche die Animation eines gezeichneten Bildes erzeugen soll. Wenn ich das Programm nun laufen lasse, erfolgt die Animation nur teilweise, d.h. manmachal macht es die richtigen Sprünge (-20) im 1-Sekunden-Takt und manchaml springt es wild durcheinander an Stellen an denen es vorgesehen ist (also nur in der y-Achse).
Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Spielfeld extends JLabel {
//Variablen
int widthStickfigure;
int heightStickfigure;
int heightStickfigureMotion;
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
//Variablen
Graphics2D g2d = (Graphics2D) g;
Bilder bilder = new Bilder();
widthStickfigure = (int) (this.getWidth() / 2.55);
heightStickfigure = this.getHeight() - 160;
//Animation
Timer timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
heightStickfigure -= 20;
heightStickfigureMotion = heightStickfigure;
repaint();
}
});
timer.start();
//Zeichnen (Spieler)
g2d.drawImage(bilder.stickfigureImage, widthStickfigure, heightStickfigureMotion, 120, 120, null);
}
}