ねこ巫女籠城ゲーム開発(石垣の建築まわりを実装していく)
石垣の建築まわりを実装というか作り直していきます。
やったこと
石垣の種類を変更する
今までは石垣の形状と高さごとに個別の建物として扱っていましたが、高さはパラメータ化する仕様に変更したので石垣の種類を以下のように定義し直しました。
IshigakiBlock,
IshigakiBlockTriangle,
Ishigaki,
IshigakiCorner,
よいです。
既存の実装を修正する
データのフォーマットを変更して、エラーになった箇所をコメントアウトしていきます。
まず、保存する石垣の値を保持するクラスは以下のものに変更しました。
他の建物に比べると、石垣の位置と 1m の高さをいくつ積み上げたかの値を保持するようにしました。よいです。
そして、石垣のパラメータと石垣を建築するボタンの配置も修正したら実行したときのエラーはなくなりました。よいです。
建築するときに表示する石垣モデルを用意する
(裾のある)石垣の角のモデルと斜め用の石垣ブロックのモデルが必要になったので MagicaVoxel で作成しました。
よいです。
セーブデータに記述した石垣データが適切に処理されるようにする
プレイヤーが石垣を配置する操作まわりに着手してもいいのですが、セーブデータにエディタで石垣の配置を追加して、それを読み込ませて表示するあたりに着手します。セーブデータは YAML フォーマットにしているので編集が楽です。
↓ 種類や向きを変えて石垣が配置されているデータを読み込んだ様子
何も表示されていませんが、エラーなく実行できたのでよいです。
そして、もろもろ修正して表示されるようにしたのがこれ↓です。
よいです。
そして、次は石垣が N 個だけ積まれたときのデータの表示や、石垣の上に石垣ブロックがあるときの表示を確認しようと思ったのですが、このあたりの実装は割と小難しいのでまた次回にします。
まとめと今後の予定
石垣まわりの修正に着手しました。大変よいです。
次回は石垣を積み上げた表示、石垣の上に石垣ブロックがある表示、それらの上に建物がや壁があるときの表示なんかに着手します。
それらが終わってからプレイヤーの石垣の配置まわりの修正になるので、まだまだ先は長いですね。がんばります。