Základ scény
public class App extends Application {
Canvas canvas = new Canvas(800, 800);
GraphicsContext gc;
Pane layer = new Pane();
List<Objekt> objekty = new ArrayList<>();
@Override
public void start(Stage stage) {
gc = canvas.getGraphicsContext2D();
StackPane root = new StackPane(canvas, layer);
Scene scene = new Scene(root, 800, 800);
scene.setOnMouseClicked(e -> handleClick(e.getX(), e.getY()));
stage.setScene(scene);
stage.show();
startSimulation();
}
}Timeline krok
Timeline timer = new Timeline(
new KeyFrame(Duration.millis(16), e -> {
updateState();
paint();
})
);
timer.setCycleCount(Timeline.INDEFINITE);
timer.play();Thread + GUI
new Thread(() -> {
while (!dead) {
updateModel();
Platform.runLater(() -> updateNodes());
try {
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
return;
}
}
}).start();