Java:制作基于网格的棋盘游戏

时间:2013-04-21 17:28:33

标签: java grid imageview javafx

我需要制作一个桌面游戏,用户可以选择图像并将其用作棋盘。图像部分很简单,但我需要帮助如何根据用户输入制作相同大小的网格。例如,可能有10x10网格或50x50。

我目前的方法是让StackPane在ImageView上有一个GridPane。所有这些都在ScollPane中,因此图像可以尽可能大。

还有其他更好的方法吗?谢谢。

1 个答案:

答案 0 :(得分:1)

是的,为您的电路板使用GridPane


我对Tic-Tac-Toe game使用了相同的方法 - 它工作正常。

class BoardSkin extends GridPane {
  BoardSkin(Board board) {
    getStyleClass().add("board");

    for (int i = 0; i < 3; i++) {
      for (int j = 0; j < 3; j++) {
        add(board.getSquare(i, j).getSkin(), i, j);
      }
    }
  }
}

正如您在问题中提到的那样,您可以使用StackPane分层ImageView分层在您的棋盘网格方格后面,但这并非绝对必要。

相反,我会使用之前链接的tic-tac-toe游戏中的一些更新的css。要将板图像分层放在网格方块后面,请将板图像设置为网格的背景图像。

.board {
  -fx-hgap: 10px;
  -fx-vgap: 10px;
  -fx-background-image: url('http://www.woodge.com/books/maps/map_Narnia.jpg');
  -fx-background-size: cover;
  -fx-background-position: center;
}

.square {
  -fx-padding: 10px;
  -fx-background-color: rgba(100, 100, 100, 0.4);
}

boardgamebackground