スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ゲーム制作日記<14> 床スイッチ拡張

op.png


みなさん、こんばんは。
ネコタです。



さて、今回は予告通り、床スイッチの拡張です。

前回のゲーム制作日記<13> 床スイッチで、仕組みと基本的な考え方をお話ししました。


しかし、全ての場合の数を並べて、ひとつひとつ考えて条件分岐を作っていたのでは、とても作業が大変です

(とはいえ、1つのスイッチに対して、5個も6個も対象が乗っかる場合を考える機会というのは、そう無さそうですけども)



そこで、今回は拡張の仕方を紹介します。

仕組みを理解すると、とても簡単な方法で条件分岐を作ることができます。


まずは、一番基本的な形


tc12-3.png


これの作り方は、以前紹介しましたね。


内容はこんな感じでした。

tc12-5.png


必要な物として、まずはプレイヤーの位置情報スイッチの位置情報を取得します。

あとは、条件分岐を組んで、プレイヤーの位置情報(X、Y)スイッチの位置情報(X、Y)一致する場合にのみイベントのセルフスイッチをONするだけ。



では、今度はプレイヤー特定のイベント(動く置物など)が乗った場合にスイッチがONになるようにします。


とりあえず、理屈はさておき。
まずは、作り方を説明します。


作成を始める前に、先ほどの内容を、作成するところとは別のページに作成しておいてください。


それでは、下の画像から始めていきます。

tc12-1.png


何もないところからで構いません。
最初に、条件分岐を選択します。

tc13-4.png


条件は、イベントのX座標の位置を格納している変数スイッチの位置を格納している変数にします。

条件を満たさないときの分岐を作成にチェックを入れておきましょう。


tc13-5.png


条件分岐を作成すると、以下のようになると思います。


tc13-7.png


次に、あらかじめ用意していた内容(条件分岐の部分から)をコピーします。


tc13-8.png


それを、先ほど作成した条件分岐『それ以外のとき』の下に貼り付けます。


tc13-9.png


これで、スイッチのX=イベントのXではないときが、完成です。



次に、スイッチのX=イベントのXの時(条件分岐の直下)を作成していきます。


まずは、先ほどと同様に条件分岐を選択します。


tc13-10.png


今度は、Y座標を指定します。
条件を満たさないときにもチェックを入れておきましょう。

すると、下の画像の青くなっている部分のようになると思います。


tc13-11.png


そして、先ほどと同様、あらかじめ作成しておいた内容をコピーします。


tc13-8.png


それを、作成したY座標の条件分岐『それ以外のとき』の下に貼り付けます。


tc13-12.png


その後、貼り付けたところから、条件分岐の内容だけをコピーします。


tc13-13.png


そして、Y座標を参照している条件分岐(一致する場合)の下に貼り付けます。


tc13-14.png


これで、16通り分の条件分岐の作成は完了です。

最後に、一番上に、必要な変数を取得しておくコマンドを入れておきましょう。

これ忘れると、動きませんからね(笑)


tc13-15.png




このように、前の内容を使いながら、ほとんどコピペだけで作成することができます。

しかも、これがどれだけ膨大な場合の数になろうとも、全て同じ操作で作成可能です。


これならば、作業が大幅に軽減されるうえに、小難しいことを考える必要もありませんね。




さて、とは言え。
理屈が分からなければ、誤作動を起こしそうで怖いですよね。

というわけで、ここからは、この作成方法で問題ない理由を説明します。



まず、スイッチの位置プレイヤー位置イベント位置が同じかどうか。
その場合の組み合わせは前回の記事で示した通り、16通りあります。


tc12-4.png


この図を、よーく見てみましょう。


tc12-3.png

tc13-2.png


分かりやすくするために、赤線で囲ってみました。

この部分は、プレイヤーだけの時と同じ組み合わせになっているのに気が付いたでしょうか。


そして、緑の枠の中をみてください。


tc13-3.png


この中には赤枠の内容が2つ入っていると思います。

そして、プレイヤーY○か×かに関わらず同じ構成になっているはずです。


さらに拡大して、全体像を見直してみてください。
緑枠の構成が、上下に1つずつあると思います。

しかも、プレイヤーX○×に関わらず同じ構成です。



このように、条件を1つ増やした場合、その○×に関わらず、その1つ前の内容がそっくり中に入っていくのです。


これで、全部コピペで作れるという理屈は分かっていただけたでしょうか。

ちなみに、プレイヤーX・YイベントX・Yの名前が逆になったところで、内容は変わりません。

名前がついてると少しこんがらがるので、単純に条件A条件Bみたいに考えて頂ければよいかと思います。



ところで、これだけだと条件分岐をたくさん作成していかなければなりません。が、それはそれで少し面倒です。

そこで、更に作業効率を上げるため、余計な条件分岐を省きました。



もう一度、16通りの表を見てみましょう。

tc13-3.png


緑枠のところですが、プレイヤーYが○のときは、それ以下の内容が○か×かかかわらず、判定はONになります。

つまり、プレイヤーXとYを参照した時点で、両方が○ならすでに結果は確定するという事です。

というわけで、下の内容ですが、


tc13-14.png


一番上の位置X・Yが共に一致する場合の内容は、スイッチONの操作だけでOKです。


プレイヤーY×(不一致)の時は、イベントの位置判定に依存するので、内容をコピペする必要があります。


次に、プレイヤーX×(不一致)の場合になりますが、そこの部分をよく見ると、プレイヤーYの○×に関わらず、下位の内容と判定が変わらないことに気が付くと思います。

よって、ここにはプレイヤーY条件分岐不要で、そのままイベントの位置を判定する内容(コピペした内容)でOKということになります。



ちょっと難しかったと思いますが、以上が、コピペで問題なく作れる理由となります。


更にイベントを増やし、スイッチの上にプレイヤー・イベント1・イベント2が乗った場合に・・・というものを作る場合。

同様の理由から、条件分岐で新しく追加するイベントの位置Xを作成し、プレイヤー・イベント1が乗った場合の内容をコピペしていく・・・という作業でサクッと完成します。



これなら、何通りの条件分岐になろうとも、楽に作成できますね!
(処理速度的にはどうなるか分かりませんけども)





ではでは、今日はこの辺で。
ネコタでした。





↓お役に立ちましたら、クリックをお願いします↓
にほんブログ村 ゲームブログへ
にほんブログ村

にほんブログ村 ゲームブログ ゲーム制作へ
にほんブログ村

ブログランキング・にほんブログ村へ
にほんブログ村
スポンサーサイト

コメント

Secret

プロフィール

猫民のんたん

Author:猫民のんたん

ネコタ:ゲーム作りが趣味の薬剤師。本職とゲーム作りの2足の草鞋を履きこなそうと日々奮闘。

毎週曜日と曜日or曜日に更新予定。


ミノン:ゲーム作り初心者で1児の母。前職はSE/PG。子育てをしながらゲーム作りを行おうと、日々奮闘中。

毎週曜日にブログ更新予定♪

最新記事
最新コメント
月別アーカイブ
カテゴリ
フリーエリア
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。