ねこ巫女籠城ゲーム開発(長押し削除の実装)
右クリックの長押しで、建物を削除するあたりを実装していきます。
削除対象がわかるようにする
まず、カーソルがホバーしている建物にアウトラインが描画されるようにします。
アウトラインの描画には Easy Performant Outline 2D | 3D を利用しました。
↓右側の多門櫓がアウトラインが描画されているもの
よいです。アウトラインの色や太さは、また後で調整します。
カーソルがホバーしている建物の地面の範囲もわかるように協調表示してもいいかもしれません。これも後で検討します。
右クリック長押しで削除する
基本的な処理としては、建築モードのときに
- 建物や壁にカーソルがホバーしていたときに
- 右クリックが長押しされていたら、長押し中を示す丸くなったスライダーを表示する。
- 規定の時間だけ長押しされたらその対象を撤去する。
- 長押しで対象を撤去中は WASD で移動しないようにする。
- 建物が建築予約の段階のときは即座に撤去するように、規定の時間をゼロにする。
- 建築済み、建築途中、修理中の建物の場合は規定の時間経過で撤去指示フラグを付与する。
- 撤去は召喚したワーカーが行う。撤去の処理は後で考える。
- 規定の時間だけ長押しされたらその対象を撤去する。
- 右クリックが長押しされていたら、長押し中を示す丸くなったスライダーを表示する。
とりあえず、建築指示の段階の建物が即座に撤去されるようにします。
で、なんやかんやで実装しました。
↓右クリックで建築指示を取り消した様子
UI の実装はまだですし、建築指示の建物が半透明でないのでわかりにくいですが、動作したので大変よいです。
建築済みの建物に撤去指示を行ったときには「撤去フラグ」を付与して資材に分解しようと思うのですが、それもまた後で実装します。
まとめと今後の予定
とりあえずですが、撤去についての実装が進んだので大変よいです。
次回は、ゲーム内で城郭を作ろうとして不足している機能を見つけて着手するか、物流(住民による資材の運搬)の仕様検討に着手しようと思います。がんばります。