ゲーム制作日記<6> レーザー発射

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


さて、今回のゲーム制作日記ですが、恒例の 『 コモンイベントで作るちょっとしたシステム 』 のご紹介です。


今回は、名付けてレーザー発射システム


しかし、今回紹介するシステムは、ぶっちゃけ、これ単体だと役に立ちません(笑)

ですが、色々なところに応用するための基本システムとなるので、ご紹介させていただきます。


さて、レーザー発射システムがどういった挙動をするのか、見てみましょう。

tc6-3.png


ここに、レバーがあります。
これを動かしてみましょう。


tc6-4.png


すると、右の像から光が発射されました。


tc6-5.png


この光はまっすぐに進んでいきます。


tc6-6.png


最後は画面端まで行って消えてしまいました。



以上、レーザーが発射されただけです(笑)


基本はこれだけなんですが。
このシステムには、いくつかの応用が考えられます。


考えられるギミックとしては、

シンボルエンカウントと併用し、敵に当たった場合に動きを止める。
離れたところのスイッチなどを起動させる。
プレイヤーが発射台になり、物を吹き飛ばす。
プレイヤーが発射台になり、当たった物と位置を交換する。
対象物に当たると反射して軌道を変える。

などなど、応用はいくらでもあります。

このように、遠隔で物を動かすシステムというのは使い勝手がよく、ゲームにアクション要素を加えてくれますから、より深みのあるゲームに仕上げることができます。


それでは、システムの解説に入りましょう。


まずは、準備するものです。

【必須】
スイッチ用のイベント
発射台用のイベント
射出物のイベント
変数×4つ
スイッチ×1つ

【推奨】
コモンイベント:位置情報を取得(射出物、消失ポイント用)
コモンイベント:レバー&スイッチ動作


ではでは。
まずは、必要な物の準備から取り掛かりましょう。


最初に、キーとなるレバーのイベントです。

レバー:1ページ目
tc6-1.png

レバー:2ページ目
tc6-2.png


コモンイベント 『 スイッチ(横レバー) 』 については、過去ログを参考にしてください。

横レバーの場合は、縦レバーと若干挙動が違うので、少し手直しが必要ですけども。


過去ログ【レバー&スイッチ】はこちら↓
レバー&スイッチ


1ページ目も2ページ目も、内容は同じです。
レバーを動かして、スイッチ 『 光 』 をONにします。
スイッチOFFの操作がないのは、この後のイベントで自動的にOFFにするからです。


次は、発射台ですね。


発射台
tc6-7.png


発射台はただの置物なので、イベントはです。
ただ、話しかけても向きが変わらないように、 『 向き固定 』 にチェックを入れておきましょう。


次は、コモンイベントです。


コモンイベント:消失ポイント
tc6-10.png


用意していた変数4つのうち、適当な2つに 『 このイベントのマップX 』 および 『 このイベントのマップY 』 を代入します。
ここでは、 『 対象位置X 』 『 対象位置Y 』 とします。


コモンイベント:イベント情報取得
tc6-11.png


ここでも同様に、用意していた変数4つのうち残りの2つに 『 このイベントのマップX 』 および 『 このイベントのマップY 』 を代入します。ここでは、 『 イベントの位置X 』 『 イベントの位置Y 』 とします。

同じ物を代入していますが、あえて変数スロットを分けて代入しておいてください。この後の操作で必要になってきます。



これで準備が整いました。


それでは、メインの光イベントを見てみましょう。


:1ページ目
tc6-8.png


1ページ目は、にしておきます。
スイッチ 『 光 』 がONになったとき、2ページ目が自動で起動します。


:2ページ目
tc6-9.png


2ページ目は、
イベントの出現条件 『 スイッチ光 』 、トリガー 『 並列処理 』 、速度 『 4倍速 』 にしておきます。

画像は見づらいですが、光の画像になっています。


まず、変数 『 対象位置X 』 『 対象位置Y 』 にそれぞれイベント 『 発射台 』 の位置XとYを代入します。


次に、イベントの位置設定で 『 このイベント 』 を変数 『 対象位置X 』 『 対象位置Y 』 に指定します。


そして、このイベントの移動ルートを 『 一歩前進 』 (繰り返し移動できない場合は飛ばす)にします。



この操作により、イベント 『 光 』 が発射台に移動したのち、次に移動ルートを指定しない限り、ひたすら前進し続けます。

右や左に飛ばしたいときは、 『 一歩前進 』 の前に 『 ○(任意の方向)を向く 』 と入れてください。



その下からは、ループコマンドになります。
ループ中断やイベントが強制的に終了されない限り、永遠と同じ処理を行うコマンドです。

ループの中身ですが、
まず、コモンイベント 『 イベント位置情報取得 』 でこのイベントの位置を変数に格納しておきます。

次に、4フレームのウエイトを入れ、

コモンイベント 『 消失ポイント 』 でイベントの位置情報を再び別の変数に格納します。


その後、条件分岐 『 イベントの位置X = 対象位置X 』 の時、さらに条件分岐で 『 イベントの位置Y = 対象位置Y 』 の時、スイッチ 『 光 』 をOFFにします。


この操作は、『 イベント位置X = 対象位置X かつ イベント位置Y = 対象位置Y の時、イベントのスイッチを切ります 』 というのを意味します。

イベント位置と対象位置は共に 『 このイベントの位置 』 ですが、情報取得の際に4フレームのウエイトを空けていましたね。

この4フレームの間にもイベントは移動しているので、進んでいる最中は 『 イベント位置 = 対象位置 』 を満たすことができません。そして、この条件を満たさない限り永遠とループするため、再び位置情報を読み込んで前進を続けます。


ところが、壁にぶつかるとイベントは前進することができなくなります。

すると、この状態になったときにはじめて、 『 イベント位置 = 対象位置 』 の条件を満たして、スイッチが切れるわけです。



これで、光がひたすら前進し、壁にぶち当たった時に消失するイベントができました。




このイベントを基礎に、次回から幾つかのギミックを作ってみましょう。



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


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

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

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

コメント

Secret

プロフィール

猫民のんたん

Author:猫民のんたん

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

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


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

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

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

この人とブロともになる

QRコード
QR