Java 如何在过渡过程中获取对象位置?

Java 如何在过渡过程中获取对象位置?,java,javafx,Java,Javafx,我正在试着测试,看看我的子弹是否击中了敌人,它是否会从窗格和子弹列表中删除它。然而,我不知道如何寻找子弹的位置,而这是在动画的中间。 我该怎么做?谢谢 case S: Circle bullet = new Circle(5); bullet.setLayoutX(guns.getGun1().getLayoutX() + guns.getGun1().getWidth()); bullet.set

我正在试着测试,看看我的子弹是否击中了敌人,它是否会从窗格和子弹列表中删除它。然而,我不知道如何寻找子弹的位置,而这是在动画的中间。 我该怎么做?谢谢

 case S:
                Circle bullet = new Circle(5);
                bullet.setLayoutX(guns.getGun1().getLayoutX() + guns.getGun1().getWidth());
                bullet.setLayoutY(guns.getGun1().getLayoutY());
                bullets.add(bullet);
                stage1Pane.getChildren().add(bullet);
                TranslateTransition bulletMovement = new TranslateTransition(Duration.seconds(3),bullet);
                bulletMovement.fromXProperty().bind(guns.getGun1().translateXProperty());
                bulletMovement.fromYProperty().bind(guns.getGun1().translateYProperty());
                bulletMovement.toXProperty().bind(guns.getGun1().translateXProperty().add(1000));
                bulletMovement.toYProperty().bind(guns.getGun1().translateYProperty());
                bulletMovement.play();

                    if (bullet.getCenterX() == enemy.getEnemyBody().getLayoutX())
                    {
                        bulletMovement.stop();
                        enemy.getEnemyLegs().setLayoutX(300);
                    }

                bulletMovement.setOnFinished(i->{
                    System.out.println(bullet.getCenterX() + "   " + enemy.getEnemyBody().getLayoutX());
                    bullets.remove(bullet);
                    stage1Pane.getChildren().remove(bullet);
                });
                break;

您只需将侦听器添加到其
boundsInParent
属性中即可。每次边界更改时,即每次移动时,都会调用侦听器:

bullet.boundsInParentProperty().addListener((obs, oldBounds, newBounds) -> {
    double centerX = newBounds.getMinX() + newBounds.getWidth() /2 ;
    // ... etc
});
请注意,
TranslateTransition
通过更改节点的
translateX
translateY
属性来工作:因此圆的
centerX
centerY
属性在动画期间不会更改