私は小規模な戦略を実装しようとしています。交代でゲームを Java で実装し、GUI は JFace と SWT で作成しています。
私の課題は、国がクリック可能なボタンとして機能する、世界地図の GUI 実装を作成することです。しかし、国には固定された境界線も長方形の形もありません。グリッド レイアウトで説明することはまったく考えられません。
このタイプのプロジェクトを実装しようとするのはこれが初めてです。アドバイスをお願いします
タイル ベースのマップ (Civilization など) であるか、ピックスマップとして表示されている場合、各タイル/ピクセルの所有権を 2 次元配列に保存できます。シンプルでクリック可能なピックスマップをキャンバスに表示し、MouseListener を追加するだけです。座標 (X,Y) でクリック イベントを取得した場合は、次のように国を取得できます。
Country clickedCountry = myCountriesOnMap[X][Y];
... MouseListener インターフェイスを実装するリスナーで。myCountriesOnMap は Country[][] 型になります。
もちろん、起動時または領土が征服された場合に、各タイル/ピクセルの所有権を解決するアルゴリズムが必要になります (これが起こるかどうかはわかりません)。国をポリゴンとして定義する必要があるかもしれません (HTML マップで行うように)。私は似たようなジェット機を使ったことがないので、これについてあなたを助けることはできませんが、Google で何かを見つけることができると確信しています.
ご挨拶
ザッハー
OpenStreetMapデータを使用してみてください。正確な国境と優れた画像エクスポートの可能性が含まれています。
Key:borderタグは、すべての境界線を表示します。それを抽出して、クリック可能な領域を計算できます。