我正在使用JavaFX8開發一個簡單的棋盤遊戲。如何獲取GridPane中Rectangle的屏幕/場景中心x,y?
對於遊戲板,我的決定是使用10x10 GridPane並在窗體的初始化方法中用矩形填充它的單元格。
private void drawBoard() {
gridpaneBoard.getChildren().clear();
for (int y = 0; y < gridpaneBoard.getRowConstraints().size(); y++)
for (int x = 0; x < gridpaneBoard.getColumnConstraints().size(); x++) {
Rectangle rect = new Rectangle(55,55);
rect.setStroke(Color.BLACK);
Tile tile = GameController.getInstance().getBoard().getTile(x, y);
if (tile.hasBranch())
rect.setFill(QuestionDifficulty.values()[tile.getBranch()
.getQuestion().getQuestion()
.getLevel()].getColor());
else
rect.setFill(Color.WHITE);
gridpaneBoard.add(rect, x, y);
gridpaneBoard.add(new Label(String.valueOf(tile.getNumber())), x, y);
}
}
爲了擲骰後進行動畫播放的令牌移動,我想我需要知道每個分片的中心x &中心Y(以創建從源瓦到目的地瓦片的路徑轉換)。
我已經嘗試了各種答案給其他人的問題,但一切都爲我返回0,0。
這是這一幕的容器層次:
這是輸出如何看待當下:
如果GridPane是罰款,我是什麼試圖實現,我怎麼能得到一個孩子的(在這種情況下是矩形的)屏幕/場景中心x,y?
如果GridPane不精,你能指出我的選擇,我如何能實現我想要的話..
謝謝!
您需要知道centerX和centerY才能將標籤居中在您的rec內? –
這可能是我的問題的另一個用途。但我主要關心的是爲路徑轉換找到矩形的中心。例如 ..將玩家代幣從瓦片#4移動到瓦片#12。 (動畫將在路徑中具有#5,#6,#7,#8,#9,#10,#11) – ckid
已經通過簡單地在行/列約束上運行並設置V/H對齊來解決了標籤對齊問題到V/H pos.CENTER。 – ckid