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