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

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

とりあえず今回は、最初の手順

●マップの領域を確保し、壁で埋めて初期化する●

を、やってみることにします。

完成したデータは コチラ になります。

 

■解説■

今回は60×40マスのフィールドを作ってみます。

1つのチップの大きさが、32×32なので、

1920×1280のフレームを作成します。

 

↓ あと、オブジェクトを大量につかうので、プロパティでオブジェクト数を20000に設定

2010050801.png

 

 

 

 

 

 

 

 

 

 

 

フレームエディタに入って、

壁となるオブジェクト「kabe」と

道となるオブジェクト「miti」のアクティブオブジェクトを作成。

それぞれ、大きさを32×32として、

変数Aを「通し番号(変数)」、変数B「通過フラグ(変数)」と

リネームして(後々、変数設定で混乱しないように)

「miti」オブジェクトの「通過フラグ(変数)」を1とします。

 

そして、壁オブジェクトをとりあえずフィールドいっぱいに複製します。

 

2010050802.png

 

 

 

 

 

 

 

 

 

 

 

次に、オブジェクト「配列」を挿入します

2次元配列にて、数値で管理できるようにしておきたいからです。

なぜ配列管理が必要なのかの詳しい解説は(コチラ)をみてください

配列の挿入後、プロパティで

・X軸の値を60、Y軸の値を40にする(念のため)

配列の種類→数字配列 ←超重要

インデックスを1から開始のラジオボタンの解除 ←超重要

を行います。

 

さて、つくった「配列」に数値を入力していきます。

今回は初期化作業なので、60×40全要素の数値を0にします。

ここはMr.grotesqueさんのテクニックを貰っちゃいます。

 

①フレーム開始時に壁オブジェクトに通し番号を振る

②高速ループを、壁オブジェクトの数だけ実行する

※①と②はかならず別項目のイベントで組み込むようにすること

(↑詳しくはコチラの項目で)

③高速ループ中、かつ

 壁オブジェクトの通し番号と

 ループインデックスの数が等しい時の条件で

 ・配列に壁の変数「通過フラグ(変数)」の値を挿入。

  ↓ X座標には(壁のX座標)/32(チップサイズ)の値

    Y座標には(壁のY座標)/32(チップサイズ)の値

 

この3項目をこなせば、2次元配列の全要素に

0が割り振られる・・・はずですw

いちおう、UPした完成データでは、

2次元配列が視覚的に確認できるように

カウンターを設置しております。

 

↓ 十字キーでひし形をスクロールさせて、全体を確認できます

2010050803.png
 

 

 

 

 

 

 

 

 

 

 

これで

●マップの領域を確保し、壁で埋めて初期化する●

という作業は完了ですね。

次回は区画分けです、、実装できるか自信ないです、はいw

トラックバック(0)

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

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

コメントする

このブログ記事について

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

ひとつ前のブログ記事は「MMF2でダンジョンの自動生成を実装する(したい) その1」です。

次のブログ記事は「MMF2でダンジョンの自動生成を実装する(したい) その3」です。

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

Powered by Movable Type 4.01