六角形の行と列で構成されたマップがあります
これは私が使用している 16 進マップの実際の画像ではありませんが、同じサイズと形状の六角形を使用しています
ユーザーがクリックしたときに、マウスがどちらの上にあるかを判断できるようにする必要があります。
各 Hexagon は「Tile」クラスのインスタンスによって表されますが、これは場所固有のデータやポリゴンさえも保持しないため、基本的に特定の六角形がどこにあるかを知る唯一の方法は、その位置を知ることです。 2D 配列。
以前に正方形のグリッドを使用したことがあり、ピクセルも正方形であるため、どの正方形が選択されているかを比較的簡単に把握できました。
// Example where each square is 10 by 10 pixels:
private void getClickedSquare(MouseEvent me)
{
int mouseX = me.getX(); // e.g. 25
int mouseY = me.getY(); // e.g. 70
int squareX = (int)(mouseX / 10); // in this case 2
int squareY = (int)(mouseY / 10); // in this case 7
// Then to access the tile I would do
map.squares[squareX][squareY].whatever();
}
しかし、Hexagons をどこから始めればよいかさえわかりません。経験のある人はいますか?
ポリゴン (Java) は使用できません。画面上でマップを移動し、サイズを大きくすると、フレームごとに膨大な量のポリゴンを更新する際に問題が発生するためです。ただし、ポイントがマップのタイルのポリゴンに含まれているかどうかを確認することはできます!
現時点では、表示されている六角形は単なる BufferedImages です。
さらに詳しい情報を知りたい場合は、お問い合わせください。お時間をいただきありがとうございます:D