Hallo,
ich habe eine provisorische Laufanimation programmiert, die ich erst vollständig zum laufen bringen will, bevor ich sie woanders einbaue.Momentan stehe ich auf dem Schlauch, denn:
1.Ich bekomme im Compiler folgende seltsame Fehlermeldungen:
LaufAnimation.java:70:9: error: unreachable statement
Thread.sleep(500);
^
LaufAnimation.java:70:9: error: unreachable statement
try {
^
^
2 errors
2.Bei früheren tests mit dieser Methode ergab es sich, dass das Programm erst alle sleeps() zusammen gerechnet, und anschliessend gewartet und erst dann, das letzte Bild der Animation angezeigt hat.
import javax.swing.*;
import javax.imageio.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class LaufAnimation{
//VARIABLEN
public static Image background;
public static Image spieler;
public static int spXposakt = 600;
public static int spYposakt = 100;
public static JFrame f;
public static Container panel;
public static MS_LA ml_animation = new MS_LA();
public static Image la[] = new Image[5];
public static LaufAnimation l = new LaufAnimation();
//FENSTER START
public LaufAnimation(){};
public static void erstelleFenster(){
f = new JFrame("Lauf-Animation");
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
panel = new Animation();
f.setSize(1000, 300);
f.getContentPane().add(panel, BorderLayout.CENTER);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
l.laden();
f.addMouseListener(ml_animation);
}
public static void main(final String[] args){
Runnable gui = new Runnable(){;
@Override
public void run(){
erstelleFenster();
}
};
SwingUtilities.invokeLater(gui);
}
public static void laden(){
int i = 1;
try {
while(i<5) {
la** = ImageIO.read(LaufAnimation.class.getResource("LA"+i+".png"));
i++;
}
} catch(IOException e) {
System.err.println(e);
}
}
static class MS_LA implements MouseListener{
public void mouseClicked(MouseEvent e){
int c = 1;
int klickPosX = e.getX();
int klickPosY = e.getY();
//Laufen
while (spXposakt < klickPosX && spYposakt < klickPosY) {
spXposakt = spXposakt +50;
spYposakt = spYposakt +50;
while (true) {
spieler = la```;
c++;
if (c > 4) {
c = 1;
}
}
try {
Thread.sleep(500);
} catch(Exception ie) {
return;
}
f.repaint();
}
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
}
private static class Animation extends JPanel{
Animation(){
super();
}
@Override
protected void paintComponent(final Graphics g){
super.paintComponent(g);
g.drawImage(background, 0, 0, 1600, 855, this);
g.drawImage(spieler, spXposakt, spYposakt, this);
}
}
}
Ich hoffe jemand kann mir einen Denkanstoß in die richtige Richtung geben.