スポンサーリンク
スポンサーリンク

【Java】簡易マップエディタを作るPart6〜マップチップを操作する〜


前回

【Java】簡易マップエディタを作るPart5〜新規作成〜


 

MapChipStageクラスを作成

 

マップチップは小さいウィンドウで表現します。

ただ、ウィンドウで表現する際に「タイトルバー」はいらないため、「initStyle」関数でタイトルバー無しのウィンドウに設定します。

 

(MapChipStage.java)

 

解説

MapChipStageに記述する処理はこれで終了です。

「Stage」に「Scene」を追加し、「Scene」に「Canvas」を追加してマップチップ画像を描画するだけです。

 

マップチップをマウスで操作する

 

マップチップはウィンドウで表現するため、スクリーン上のX・Y座標を計算する必要があります。

以下の図をご覧ください。

このように、「MapStageの座標」と「MapStage内のマウス座標」と「ウィンドウ枠」を足し合わせることで計算します。

また、以下のプログラムではマップチップウィンドウの「幅・高さ」の\(\displaystyle \frac{1}{2}\)を引いており、これによりマウスカーソルの位置にマップチップの真ん中が位置するようにします。

(MapStage.java)

 

マップチップをマップにはめ込む

 

マップチップをマップにはめ込む作業をします。

これは、マップチップがマップ上(MyCanvas上)のどこの座標に位置しているかを計算し、その場所のマップデータを書き換える処理を記述することで実現します。

上記の「X・Y」座標がマップ上のカーソル座標となります。

そして、この「X・Y」座標マップチップの幅・高さで割ったものがマップデータ上の列数・行数となります。

(MapStage.java)

 

マップ上をタッチ・ドラッグでマップデータを書き換える

 

現状ではマップチップを移動してマップ上にはめ込むことでしかマップデータを変えられないため、非常に面倒です。

なので、マップ上を「マウス押下・マウスドラッグ」するだけでマップデータを書き換えるようにします。

 

(MyCanvas.java)

 

次回

【Java】簡易マップエディタを作るPart7〜最終回(保存・編集)〜

コメント