石垣 2019/12/21 17:49

制作日記5

ご支援ありがとうございます。
現在はローグライク風おねショタゲームを制作中しています。

まずは前回のハッカトリックスター0号の立ち絵を動かしてみました。
有料プランの記事では原寸での裸状態でのくらいモーションを2つアップしてあります。

現在はゲームの基本的な部分を制作中ですのでここからはその辺の話です。
次はマップをランダム生成できるようにしてみます。

さて自分で考えてみてもいまいちいい方法が浮かばなかったのでそんな時はネットで調べます。
いくつかのサイトを調べてみたところ、次の手順で処理を行えばマップをランダム生成できるようです。


1:マップをいくつかの区画に分ける
2:それぞれの区画に部屋を作る
3:部屋から区画の境界に向けて通路を伸ばす
4:区画の境界まで伸ばした通路をつなげる
5:通路をいくつか削除する

マップ生成ってこんなことやってたんですね。
というわけでそんな感じに作っていこうと思います。

1:マップをいくつかの区画に分ける
プログラムのテストごとに区画の数が変わるとバグの特定とかが面倒になりそうなので
テスト中は3×3の区画に固定しておくことにします。

2:それぞれの区画に部屋を作る
次は区画の中に部屋を作ります。
部屋の大きさはランダムに決めます。
また、区画内のどこに部屋を作るかもランダムに決めます。
ただし、区画内には通路のためのスペースを残しておかないといけません。
ですので部屋は図の破線の内側に作り、区画境界と部屋の間にはスペースが残るようにします。

また、部屋の形は正方形、長方形、正方形(四隅欠け)、方形(1辺欠け)のようにいくつか用意してみました。

そんな感じで3×3の区画にランダムに部屋を作るプログラムの実行結果です。
作ったマップはミニマップで確認しています。

次はさらに部屋に手を加えます。
現在は全ての区画に部屋を作っていますが、今度は部屋の作らない区画も発生させます。
また、部屋の中に障害物も設置します。
障害物は歩くことのできない床で、設置する場所はランダムに決めます。
ただし、あとで作る通路の入り口をふさいでしまうといけないので、部屋の壁沿い1マスには設置しないようにします。

そんなわけで作成したマップをミニマップで確認します。

部屋のない区画が発生していることが確認できます。
部屋の中の歯抜けの部分が障害物です。


現在のマップで確認すると、灰色の部分が障害物です。
障害物の部分は歩くことができません。
また、壁の横を斜め移動することはできませんが、障害物の横は斜め移動することができるようにしました。

部屋を作るところまではとりあえず完成です。
長くなってきたので続きはまた次回。

【 アニメ公開 】プラン以上限定 支援額:300円

このバックナンバーを購入すると、このプランの2019/12に投稿された限定特典を閲覧できます。 バックナンバーとは?

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

最新の記事

月別アーカイブ

記事を検索