MMF2でダンジョンの自動生成を実装する(したい) その4

| | コメント(0) | トラックバック(0)

■区画分けをした後、フロアを作成する■

 

前までのデータを、関数やループにまとめ、

動作チェックを行い、やっとまともに動くようなものを

作ることができました。

前回のものを関数やループでまとめたデータをコチラ

今回、作成して出来上がったものを、コチラに入れておきます。

■解説■

2010051701.PNG

 

 

 

 

 

 

 

 

 

 

 

 

■ 水色の範囲に収まるようなXのスケールを決定

ランダムで、X'以下の数値を代入していきたいのですが、

さすがに、4以下の大きさになると、小さすぎると思ったので、

 random(X'-5)+5

というように、結果が0~4とならないように、しました。

Yの大きさも、同じように算出します。

 

 

■ エリアの座標を決める

2010051702.png

 

 

 

 

 

 

 

 

 

 

 

 

エリアの大きさが決まったら、

どこの座標にエリアを置くか、決めます。

X座標・・・random(x'-a')+(白い四角のX座標)

Y座標・・・random(y'-b')+(白い四角のY座標)

こんな感じで、

紫の範囲でランダムに配置されるようにしました。

 

 

■ 形成したエリアに、二次元配列の値「1」を代入する

ここは進めるぞ、という意味で「1」の値を埋め込みます。

高速ループを2つ使用し、X軸とY軸の2次元配列を

埋めていきます。

 

(イベントエディタの内容)

----------------------------------------

1:フレームが開始した時(仮)

 ・ループ1を、作成したエリアの数だけループさせる

2:ループ1がループ中

 ・ループ2を、対象フロアのXの大きさの数だけループさせる

3:ループ2がループ中

 ・値1を、2次元配列に代入

 代入X座標・・・切り出したX座標+LoopIndex(ループ2)

 代入Y座標・・・切り出したY座標

 ・ループ3を、対象フロアのYの大きさの数だけループさせる

4:ループ3がループ中

 ・値1を、2次元配列に代入

 代入X座標・・・切り出したX座標+LoopIndex(ループ2)

 代入Y座標・・・切り出したY座標+LoopIndex(ループ3)

----------------------------------------

 

と、だいぶややこしくなってしまいましたが、

上記のような処理で、1を埋めていきました。

↓↓↓↓↓↓↓↓↓↓

↓↓↓↓↓↓↓↓↓↓

↓↓↓↓↓↓↓↓↓↓

↓↓↓↓↓↓↓↓↓↓

こんなイメージで1を埋めていく感じかな?

 

ちなみに完成したデータでは、

 

         [0]切り出した座標X

           [1]切り出した座標Y

             [2]切り出したXの大きさ

               [3]切り出したYの大きさ

                 [4]エリアのX座標

                   [5]エリアのY座標

                     [6]エリアのXの大きさ

                       [7]エリアのYの大きさ

[0]最初のエリア

[1]二個目のエリア

  ・

  ・

  ・

というように、[ryouiki]という名の配列名で、

各エリアの座標、大きさを管理しているため、

かなり見づらく、なっております。

 

とりあえず、自分のほうで理解してればいいかなw

200回くらい起動して、フリーズしなかったので

おそらく問題ないプログラムだと思います。

しかし本当に、分かりづらい解説で、申し訳ないです m()m

トラックバック(0)

このブログ記事を参照しているブログ一覧: MMF2でダンジョンの自動生成を実装する(したい) その4

このブログ記事に対するトラックバックURL: /205

コメントする

このブログ記事について

このページは、87が2010年5月17日 02:25に書いたブログ記事です。

ひとつ前のブログ記事は「MMF2におけるフリーズのパターン その2」です。

次のブログ記事は「ドM・・・だと?」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01