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