Guten Abend,
ich versuche aktuell die einzelnen Framerates auszulesen. Das habe ich wie folgt umgesetzt:
Wenn der AnimationTimer vom Benutzer gestoppt und wieder gestartet wird, verändern sich die Framerates so stark, dass meine Berechnungen (von der Frametime ausgehend) starke Schwankungen aufweisen.
Ich habe schon mehrere Codebeispiele ausprobiert und das aktuelle habe ich der folgenden Seite entnommen: https://stackoverflow.com/questions...etting-the-frame-rate-of-a-javafx-application

Anhand des Screenshots sieht man ganz schön, dass die Framerate von 61 auf 8 herunterfällt.
Weiß hier eventuell zufällig jemand, womit das zusammenhängt und wie man das eventuell beheben kann?
Der AnimationTimer wird über die Methode .start() und .stop() gestartet und gestoppt.
Liebe Grüße und Danke im Voraus
ich versuche aktuell die einzelnen Framerates auszulesen. Das habe ich wie folgt umgesetzt:
Der Code funktioniert auch soweit.public void timerStarten() {
animationTimer = new AnimationTimer() {
@Override
public void handle(long aktFrameRate) {
long alteFrameTime = frameTime[frameTimeIndex];
frameTime[frameTimeIndex] = aktFrameRate;
frameTimeIndex = (frameTimeIndex + 1) % frameTime.length;
if (frameTimeIndex == 0) {
arrayGefuellt = true;
}
if (arrayGefuellt) {
long elapsedNanos = aktFrameRate - alteFrameTime;
long elapsedNanosPerFrame = elapsedNanos / frameTime.length;
frameRate = 1_000_000_000.0 / elapsedNanosPerFrame;
}
};
animationTimer.start();
Wenn der AnimationTimer vom Benutzer gestoppt und wieder gestartet wird, verändern sich die Framerates so stark, dass meine Berechnungen (von der Frametime ausgehend) starke Schwankungen aufweisen.
Ich habe schon mehrere Codebeispiele ausprobiert und das aktuelle habe ich der folgenden Seite entnommen: https://stackoverflow.com/questions...etting-the-frame-rate-of-a-javafx-application

Anhand des Screenshots sieht man ganz schön, dass die Framerate von 61 auf 8 herunterfällt.
Weiß hier eventuell zufällig jemand, womit das zusammenhängt und wie man das eventuell beheben kann?
Der AnimationTimer wird über die Methode .start() und .stop() gestartet und gestoppt.
Liebe Grüße und Danke im Voraus