2015-04-28 50 views
-1

我有這段代碼,它通過一定的邊界後重新安置一個球。問題是它只做了一次。它應該每次都這樣做。我究竟做錯了什麼?JavaFx節點搬遷

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。

+0

Id喜歡將它重新定位回特定座標。 SetTranslate是相對的。重新定位是第一次,但不是第二次,它非常混亂。 –

+0

但是,如果您重新定位,則翻譯座標仍然適用,除非您明確將它們重新設置爲0. – Roland

+0

如何明確地將座標重新設置爲0? –