1

ユーザーが画像を選択してボードとして使用できるボードゲームを作成する必要があります。画像部分は簡単ですが、ユーザー入力に基づいて同じサイズのグリッドを作成する方法については助けが必要です。たとえば、10x10 グリッドまたは 50x50 グリッドが存在する可能性があります。

私の現在のアプローチは、ImageView の上に GridPane を持つ StackPane を持つことです。これらはすべて ScollPane 内にあるため、画像をできるだけ大きくすることができます。

これを行う他のより良い方法はありますか?ありがとう。

4

1 に答える 1

1

はい、ボードにGridPaneを使用してください。


Tic-Tac-Toe ゲームにも同じ方法を使用しましたが、問題なく動作しました。

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);
      }
    }
  }
}

質問で述べたように、ボード グリッドの正方形の背後にあるImageViewでStackPaneを使用できますが、厳密には必要ではありません。

代わりに、以前にリンクした三目並べゲームの更新された 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);
}

ボードゲームの背景

于 2013-04-22T01:13:39.307 に答える