キノコが何か作るブログ

ゲーム・ドット絵・アプリなどを作ります

MENU

ゲーム開発の進捗(2日目)

昨日目標としていた「部屋が重ならないように自動で配置する」という課題は、午前中に終わった。

f:id:mizukinoko:20190415093147p:plain

重なり判定の関数が部屋の数だけ実行されるはずなのに、なぜか1回しか実行されないなどのバグに悩まされたが、単純にreturn文を書く場所がおかしかっただけだった。

重なり判定は、部屋を一つの矩形と考えて、矩形同士の当たり判定で重ならないようにした。

参考にした記事がこちら

qiita.com

部屋の生成は5部屋行われる。

縦横7から13ブロックの大きさでランダムに部屋が生成され、領域外や重なりが無いことが確認出来たらRoomクラスに部屋の情報を入れるようにしている。

ちなみに1ブロックのサイズは48×48ピクセルにしている。これは、ゆるドラシルのプレイヤー素材に合わせたらこうなった。

フィールドの大きさは、縦40ブロック横50ブロックで作っているけど、もう少し大きくなるかもしれないし小さくなるかもしれない。

 

通路生成を実装しようとしたときに「あっ、これ今のコードじゃ無理だわ」となったので、やっぱり書いてから作ることにした。

ダンジョンが生成されるまでの流れ

  1. フィールドをブロックで埋める
  2. フィールドを4つに区分けする
  3. 区分けごとにブロックを掘って部屋を作る
  4. 部屋から区分け線まで通路を掘り、区分け線に沿って通路をつなげる

という感じに作り直そうと思ったが、いろいろと用事があってここまでしかできてない。

明日は上に書いた内容をやりたいと思う。

プライバシーポリシー