首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在过渡过程中获取对象的位置?

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

Stack Overflow用户
提问于 2017-04-20 06:56:02
回答 1查看 29关注 0票数 0

我正在尝试测试,看看我的子弹是否击中了敌人,如果没有的话,我会将它从窗格和项目列表中删除。但是,我不知道如何在动画中查找子弹的位置。我该怎么做呢?谢谢!

代码语言:javascript
复制
 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;
EN

回答 1

Stack Overflow用户

发布于 2017-04-20 07:07:59

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

代码语言:javascript
复制
bullet.boundsInParentProperty().addListener((obs, oldBounds, newBounds) -> {
    double centerX = newBounds.getMinX() + newBounds.getWidth() /2 ;
    // ... etc
});

请注意,TranslateTransition通过更改节点的translateXtranslateY属性来工作:因此圆的centerXcenterY属性在动画过程中不会更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43507422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档