我有这段代码在经过某个边界后重新定位球。问题是它只做了一次。它应该每次都这样做。我做错了什么?
if (circle.getBoundsInParent().getMaxY() > bg.getBoundsInParent().getMaxY()) {
circle.relocate(100, 100);
}
我这样移动球:
circle.setTranslateX(circle.getTranslateX() + deltaX);
circle.setTranslateY(circle.getTranslateY() + deltaY);
答案 0 :(得分:1)
阅读relocate方法的文档:
为了设置节点的layoutX和layoutY转换属性 将此节点重定位到父节点中的x,y位置。
此方法不会更改translateX或translateY,如果也设置了 将添加到layoutX和layoutY,调整最终位置 相应的数额。
由于您没有提供太多工作,我的猜测是您不应该使用重定位,而是使用setTranslateX和setTranslateY。