Панель стека: Добавление Canvas и Imageview не приводит к тому, что эти два элемента будут сложены - PullRequest
0 голосов
/ 19 апреля 2020

Я попытался добавить вид изображения и холст на панель в javafx, где вид изображения анимирован для перехода по пути. Однако анимация воспроизводится далеко от того места, где находится холст. Что может быть причиной этого?

Создание стековой панели и с холстом, и с бегущим спрайтом.

Этот отредактированный код очень похож на мой, отображающий проблему только с помощью круга вместо изображения

public class issue extends Application{
public void start(Stage stage) throws Exception {
    StackPane root = new StackPane();
    Canvas canvas = new Canvas(500,500);

    GraphicsContext gc = canvas.getGraphicsContext2D();
    File file = new File("src/Image.png");
    gc.drawImage(new Image(file.toURI().toString()),0,0);

    Circle circle = new Circle(32,32,32);

    Line path = new Line(circle.getCenterX(), circle.getCenterY(),0,0);
    PathTransition move = new PathTransition();
    move.setDuration(Duration.millis(2000));
    move.setNode(circle);
    move.setPath(path);
    move.setAutoReverse(false);
    move.setCycleCount(1);
    move.play();

    root.getChildren().addAll(canvas,circle);
    Scene scene = new Scene(root,500,500);
    stage.setScene(scene);
    stage.show();
} }

Код анимации соответствует той же формуле для размещения спрайтов, поэтому я не понимаю, почему изображение находится в другом месте, чем изображение персонажа.

Некоторые скриншоты того, что это выглядит выполненным: Персонаж, нарисованный на холсте, где он должен быть

enter image description here

Анимация ходьбы персонажа вне холста, независимо от того, нарисован ли он в одинаковых / похожих координатах

...