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