通路・部屋スポットの実装
これもいちおうTIPSの方に入ってはいますが、不思議のダンジョンだったら欠かせないガジェットですよね。
ということで作り方ですが、最初に素材を用意しなくてはいけません。
1.通路スポット用に、真ん中に穴が開いた黒背景の画像(ウディタ公式のコモンからお借りしました。ありがとうございました)
2.部屋スポット用に、なんでもいいんだけどとにかく黒色の四角形画像
素材を用意したらコモンづくりです。
分かるとは思いますが、並列実行のイベントになりますね。
内容はこんな感じ。
・主人公が通路にいるか部屋にいるか判断
↓
分岐1:通路にいるとき
通路スポット用の画像を、主人公画面X座標、Y座標を中心にして描画。
こちらは特に難しいことはないですね。
分岐2:部屋にいるとき
部屋にいる場合は、主人公が前回の処理から部屋を移動していた場合のみ描画します。
要するに、新しく部屋に入ったとき以外は処理しないということですね。
で、部屋スポットの作り方ですが、減算表示を使うとか自由変形でいろいろやるとかありそうですが、
自分の場合は一番分かりやすい方法で、黒色ピクチャを4枚使って部屋の周りを囲むということにしました。

部屋の角の画面XY座標は、前回の「マップ座標から画面XY座標取得」のコモンがあればいくらでも取得できますね。
あとは黒色ピクチャの透明度を設定して、自由変形で適切な位置に表示すればOKです。
もちろん、このままだと主人公が動くのと一緒にピクチャも動いてしまうので、「スクロールとリンク」にチェックを入れるのをお忘れなく。
これでとりあえず、部屋と通路のスポットが作れました。
しかしこのままではただ部屋の外が暗いだけで、敵の姿が丸見えです。
ということでスポット外にいる敵はグラフィックを変化させなければなりませんね。
これは別に難しくもないので詳しくは書きませんが、現在スポットが当たっている範囲を格納して、敵の位置がその範囲内だったらグラフィック表示、範囲外なら透明に変更するみたいなことを全敵分やります。なのでスポットがあると処理は若干重くなりますね。
敵のグラフィック表示状態に合わせて、ミニマップのNPC位置の描画にも手を加えてやるとスポット関連は完成です。
余談:ウディタの変数呼び出し値ってXY座標はもちろんのこと、高さやら影番号やらなんでも取得できるイメージですが、なぜかグラフィック番号は取得できないみたいです。これがあればいろいろ楽になりそうなものですが、仕方ないのでグラフィック変更したら逐次CDBにグラフィック状態を格納することにしましょう。
ということで作り方ですが、最初に素材を用意しなくてはいけません。
1.通路スポット用に、真ん中に穴が開いた黒背景の画像(ウディタ公式のコモンからお借りしました。ありがとうございました)
2.部屋スポット用に、なんでもいいんだけどとにかく黒色の四角形画像
素材を用意したらコモンづくりです。
分かるとは思いますが、並列実行のイベントになりますね。
内容はこんな感じ。
・主人公が通路にいるか部屋にいるか判断
↓
分岐1:通路にいるとき
通路スポット用の画像を、主人公画面X座標、Y座標を中心にして描画。
こちらは特に難しいことはないですね。
分岐2:部屋にいるとき
部屋にいる場合は、主人公が前回の処理から部屋を移動していた場合のみ描画します。
要するに、新しく部屋に入ったとき以外は処理しないということですね。
で、部屋スポットの作り方ですが、減算表示を使うとか自由変形でいろいろやるとかありそうですが、
自分の場合は一番分かりやすい方法で、黒色ピクチャを4枚使って部屋の周りを囲むということにしました。

部屋の角の画面XY座標は、前回の「マップ座標から画面XY座標取得」のコモンがあればいくらでも取得できますね。
あとは黒色ピクチャの透明度を設定して、自由変形で適切な位置に表示すればOKです。
もちろん、このままだと主人公が動くのと一緒にピクチャも動いてしまうので、「スクロールとリンク」にチェックを入れるのをお忘れなく。
これでとりあえず、部屋と通路のスポットが作れました。
しかしこのままではただ部屋の外が暗いだけで、敵の姿が丸見えです。
ということでスポット外にいる敵はグラフィックを変化させなければなりませんね。
これは別に難しくもないので詳しくは書きませんが、現在スポットが当たっている範囲を格納して、敵の位置がその範囲内だったらグラフィック表示、範囲外なら透明に変更するみたいなことを全敵分やります。なのでスポットがあると処理は若干重くなりますね。
敵のグラフィック表示状態に合わせて、ミニマップのNPC位置の描画にも手を加えてやるとスポット関連は完成です。
余談:ウディタの変数呼び出し値ってXY座標はもちろんのこと、高さやら影番号やらなんでも取得できるイメージですが、なぜかグラフィック番号は取得できないみたいです。これがあればいろいろ楽になりそうなものですが、仕方ないのでグラフィック変更したら逐次CDBにグラフィック状態を格納することにしましょう。
- 関連記事
-
- 通路・部屋スポットの実装 (2014/09/07)
- 自動消去メッセージウィンドウの作成 (2014/07/15)
- ローグライク製作メモTOPページ (2014/09/16)
- PC操作 (2014/08/11)
- ランダムダンジョン生成-空間分割 (2014/07/02)
スポンサーサイト