Repaint flackert!!!

Schlagdraufunschluss_124

Aktives Mitglied
Ich bins schon wieder :oops:

Meine repaint Methode flackert - Ich hab nachgelesen, dass man die Methode irgendwie in ein Timer packen soll, aber bei mir ist sie schon in einer GameLoop drin :(

Java:
public class Spiel implements Runnable {

    Data data;
    Gui gui;
    public final int fps = 60;
    public final long maxLoop = 1000 / fps;
    private boolean isRunning = true;

    public Spiel(Data data) {
        this.data = data;
        init();
        Gui gui = new Gui(data);
        this.gui = gui;
        new Thread(this).start();
    }

    @Override
    public void run() {

        long oldTime;
        long curTime;

        while (isRunning) {
            oldTime = System.currentTimeMillis();
            update();
            render();
            curTime = System.currentTimeMillis();

            if ((curTime - oldTime) > maxLoop) {
                continue;
            } else {
                try {
                    Thread.sleep(maxLoop - (curTime - oldTime));
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    public void update() {

        }

    public void render() {
        System.out.println("Zeichne");
        gui.repaint();
    }
   
    public void init(){
        new GameLevel(data);
       
        InitData initData = new InitData(data);
        initData.initPics();
       
    }

}

Was kann man da tun ?
 

Ähnliche Java Themen


Oben