From be9175e106adc3f2e3973f3821533ba0cba4fb5e Mon Sep 17 00:00:00 2001 From: koz01 <koz01@pcfeib208-22-74.vsb.cz> Date: Wed, 4 Oct 2023 08:05:53 +0200 Subject: [PATCH] Define fix FPS --- src/main/java/lab/DrawingThread.java | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/main/java/lab/DrawingThread.java b/src/main/java/lab/DrawingThread.java index bac2377..9324c88 100755 --- a/src/main/java/lab/DrawingThread.java +++ b/src/main/java/lab/DrawingThread.java @@ -6,6 +6,8 @@ import javafx.scene.canvas.GraphicsContext; public class DrawingThread extends AnimationTimer { + private static final int FPS = 100; + private final Canvas canvas; private final GraphicsContext gc; @@ -25,13 +27,19 @@ public class DrawingThread extends AnimationTimer { */ @Override public void handle(long now) { - gc.clearRect(0, 0, canvas.getWidth(), canvas.getHeight()); - world.draw(gc); - if (lasttime > 0) { - //time are in nanoseconds and method simulate expects seconds - world.simulate((now - lasttime) / 1e9); + + double deltaT = (now - lasttime) / 1e9; + if (deltaT >= 1./FPS) { + gc.clearRect(0, 0, canvas.getWidth(), canvas.getHeight()); + world.draw(gc); + if (lasttime > 0) { + //time are in nanoseconds and method simulate expects seconds + + world.simulate(deltaT); + } + lasttime = now; } - lasttime = now; + } } -- GitLab