fc2ブログ

方向転換の実装

TIPSの方もひととおり主要な処理が終わったので、ここからはより利便性を増すシステムづくりに入っていきます。
ターン制が命なので、方向転換はほぼ必須のシステムですね。
しかも、このコモンの出来によっては敵に囲まれてピンチのときとかに、プレイヤーにやたらストレスを与えまくる設計になりかねないので、がんばりましょう。

とはいえ、方向転換なんてさしたるコモンじゃない。
方向転換キーを押されたら主人公が移動しないようにして、向きだけ変えればいいんじゃないの?

とか思っている方。
自分もそう思ってました。
で、最初に適当に組んだイベントがこんな感じ。

(並列実行)
方向転換キー(Sキー)を監視。
キーが押されたら方向転換中のフラグを立てて、主人公が動かないよう設定。
8方向のキー入力を受け付けて、入力された方向に方向転換。

とりあえずこれだけの内容をパパッと書いてテストプレイしてみたら驚愕。
なぜか斜め方向に方向転換できない!
いや、できるんだけど、異常に感度が悪くて使い物にならん!
上下左右はすんなり方向転換できるんだけど、斜め方向に調節するのが至難の業。
ゲームパッドならいいけど、キーボードで遊ぶ人がいる以上、これじゃいくらなんでも不便すぎる。

で、斜め方向のキー入力について調べてみたんですが、どこにも載っていなかったので他のウディタ製ローグライクゲームで確かめてみました。
そしたら、やっぱり斜め方向(特に右下)のキー入力にはかなり難がある。
方向転換でも斜め方向にはかなり向きづらい模様…。
どうやらウディタ自体の仕様に近いものがあるみたいですね。
移動のときは8方向受付でもわりとすんなりいくのに、なぜだろう。

まぁ、考えても仕方ないので打開策を考えました。
試行錯誤の末できたのが、4方向の入力状態のみで8方向入力を判断するシステムです。
要するに、右上なら右+上、左下なら左+下と解釈して読み取ろうというわけですね。
4方向のキー入力受付を2回行い、右+上だったら右上を向く(上+右も同様)みたいなことにしました。
こうしたらわりと素直に斜めも向いてくれるようになったので、ひと安心です。

ここまできたら、あとは方向転換用グリッドを作ったり、敵が周囲にいたらそっちを向くようにしたり、好きにカスタマイズして利便性を高めていくだけです。
本当なら30分ちょっとで作る予定が何時間も困り果てる羽目になった思い出深いコモンですが、とりあえずこれで方向転換も制覇です。
スポンサーサイト



通路・部屋スポットの実装

これもいちおうTIPSの方に入ってはいますが、不思議のダンジョンだったら欠かせないガジェットですよね。
ということで作り方ですが、最初に素材を用意しなくてはいけません。

1.通路スポット用に、真ん中に穴が開いた黒背景の画像(ウディタ公式のコモンからお借りしました。ありがとうございました)
2.部屋スポット用に、なんでもいいんだけどとにかく黒色の四角形画像

素材を用意したらコモンづくりです。
分かるとは思いますが、並列実行のイベントになりますね。
内容はこんな感じ。

・主人公が通路にいるか部屋にいるか判断

分岐1:通路にいるとき
通路スポット用の画像を、主人公画面X座標、Y座標を中心にして描画。
こちらは特に難しいことはないですね。

分岐2:部屋にいるとき
部屋にいる場合は、主人公が前回の処理から部屋を移動していた場合のみ描画します。
要するに、新しく部屋に入ったとき以外は処理しないということですね。
で、部屋スポットの作り方ですが、減算表示を使うとか自由変形でいろいろやるとかありそうですが、
自分の場合は一番分かりやすい方法で、黒色ピクチャを4枚使って部屋の周りを囲むということにしました。

ブログ説明

部屋の角の画面XY座標は、前回の「マップ座標から画面XY座標取得」のコモンがあればいくらでも取得できますね。
あとは黒色ピクチャの透明度を設定して、自由変形で適切な位置に表示すればOKです。
もちろん、このままだと主人公が動くのと一緒にピクチャも動いてしまうので、「スクロールとリンク」にチェックを入れるのをお忘れなく。

これでとりあえず、部屋と通路のスポットが作れました。
しかしこのままではただ部屋の外が暗いだけで、敵の姿が丸見えです。
ということでスポット外にいる敵はグラフィックを変化させなければなりませんね。
これは別に難しくもないので詳しくは書きませんが、現在スポットが当たっている範囲を格納して、敵の位置がその範囲内だったらグラフィック表示、範囲外なら透明に変更するみたいなことを全敵分やります。なのでスポットがあると処理は若干重くなりますね。
敵のグラフィック表示状態に合わせて、ミニマップのNPC位置の描画にも手を加えてやるとスポット関連は完成です。

余談:ウディタの変数呼び出し値ってXY座標はもちろんのこと、高さやら影番号やらなんでも取得できるイメージですが、なぜかグラフィック番号は取得できないみたいです。これがあればいろいろ楽になりそうなものですが、仕方ないのでグラフィック変更したら逐次CDBにグラフィック状態を格納することにしましょう。
Twitter
カテゴリ
最新コメント
月別アーカイブ
カウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR