From f03144cb006358f61f6c493e2ce66d9bc3243fb9 Mon Sep 17 00:00:00 2001
From: koz01 <koz01@PCFEIB207-060.msad.vsb.cz>
Date: Wed, 21 Sep 2022 08:23:52 +0200
Subject: [PATCH] solution
---
src/main/java/lab/DrawingThread.java | 34 +++++++++++++++++++++++-----
1 file changed, 28 insertions(+), 6 deletions(-)
diff --git a/src/main/java/lab/DrawingThread.java b/src/main/java/lab/DrawingThread.java
index 63badd7..e2a2194 100644
--- a/src/main/java/lab/DrawingThread.java
+++ b/src/main/java/lab/DrawingThread.java
@@ -3,12 +3,17 @@ package lab;
import javafx.animation.AnimationTimer;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
+import javafx.scene.paint.Color;
public class DrawingThread extends AnimationTimer {
private final Canvas canvas;
private final GraphicsContext gc;
-
+ private long previousTime;
+ private double x = 10;
+ private double y = 10;
+ private double speed = 20;
+
public DrawingThread(Canvas canvas) {
this.canvas = canvas;
this.gc = canvas.getGraphicsContext2D();
@@ -20,11 +25,28 @@ public class DrawingThread extends AnimationTimer {
*/
@Override
public void handle(long now) {
- // put your code here
- //gc.setFill(Color.AQUA);
- //gc.setStroke(Color.BLACK);
- //gc.fillOval(10, 10, 20, 20);
-
+ if (previousTime > 0) {
+ double deltaT = (now - previousTime) / 1e9;
+ // put your code here
+ clearCanvas();
+ drawUFO(x, y);
+ x += speed * deltaT;
+ y += speed * deltaT;
+ }
+ previousTime = now;
+
+ }
+
+ private void clearCanvas() {
+ gc.clearRect(0, 0, canvas.getWidth(), canvas.getHeight());
+ }
+
+ private void drawUFO(double x, double y) {
+ gc.setFill(Color.SILVER);
+ gc.fillOval(x, y, 50, 50);
+ gc.setFill(Color.BLACK);
+ gc.fillRect(x - 10, y + 25 - 1, 70, 2);
+
}
}
--
GitLab