スポンサーサイト

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

ゲーム制作日記<33> 火炎放射器トラップ

op.png



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



今回も恒例の『 コモンイベントで作るちょっとしたシステム 』 のご紹介。



今回ご紹介するシステムは、『火炎放射器トラップ』です。


tc25-1.png


挙動は、この画像を見ただけで何となく分かるかと思います。
真ん中の魔法使いから、火の玉がぽぽぽっと飛び出していきます。


tc25-2.png


この火の玉に触れると、ダメージを受けます。
あぶられ続けると、その分、たくさんダメージを受けます。
早く逃げましょう。



今回は固定砲台を「魔法使い」としましたが、発射台のイベントはなんだってOKです。

それこそ、重火器のグラフィックを置いたりしたらそれっぽく見えるかもしれません。



それでは、今回のシステムを解説していきましょう。

まずは、必要なモノの確認から。


【必須】
固定砲台用イベント
火炎イベント × 必要な数だけ(この数が射程距離となります)
スイッチ × 火炎イベントの数
変数 × (5 + 火炎イベントの数×2)


【推奨】
・プレイヤー情報取得用のコモンイベント
・イベント位置情報取得用のコモンイベント



コモンイベント : プレイヤー情報取得用
tc25-7.png

<実行内容>
変数の操作:#0004 プレイヤーの位置X = プレイヤーのマップX
変数の操作:#0005 プレイヤーの位置Y = プレイヤーのマップY
変数の操作:#0002 プレイヤーの向き = プレイヤーの向き




コモンイベント : イベント位置情報取得用
tc25-8.png

<実行内容>
変数の操作:#0006 イベントの位置X = このイベントのマップX
変数の操作:#0007 イベントの位置Y = このイベントのマップY
変数の操作:#0003 イベントの向き = このイベントの向き





以前も紹介したかもしれませんが、この手の位置情報を取得するコモンイベントがあると、結構便利です。
結構、いろんなところで使えます。

今回は使用せずに作ってみましたが、これと同じ内容が出てきます。



それでは、今回のシステムに使うイベントの内容を見てみましょう。


イベント : 固定砲台用
tc25-3.png

<実行内容>
ループ
移動ルートの設定:このイベント (ウェイト)
移動ルートの設定:◇右に90度回転
変数の操作:#0006 イベントの位置X = このイベントのマップX
変数の操作:#0007 イベントの位置Y = このイベントのマップY
条件分岐:このイベントが下を向いている
イベントの位置設定:EV002, ({イベントの位置X},{イベントの位置Y}) (向き: 下)
イベントの位置設定:EV003, ({イベントの位置X},{イベントの位置Y}) (向き: 下)
イベントの位置設定:EV004, ({イベントの位置X},{イベントの位置Y}) (向き: 下)
変数の操作:#0007 イベントの位置Y += 1
指定位置の情報取得:地形タグ, 地形タグ, ({イベントの位置X},{イベントの位置Y})
条件分岐:地形タグ = 1
スイッチの操作:#0074 A = OFF
スイッチの操作:#0075 B = OFF
スイッチの操作:#0076 C = OFF
ラベルジャンプ:処理終了

それ以外のとき
移動ルートの設定:EV002 (飛ばす)
移動ルートの設定:◇一歩前進
スイッチの操作:#0074 A = ON

分岐終了
変数の操作:#0007 イベントの位置Y += 1
指定位置の情報取得:地形タグ, 地形タグ, ({イベントの位置X},{イベントの位置Y})
条件分岐:地形タグ = 1
スイッチの操作:#0075 B = OFF
スイッチの操作:#0076 C = OFF
ラベルジャンプ:処理終了

それ以外のとき
移動ルートの設定:EV003 (飛ばす)
移動ルートの設定:◇一歩前進
移動ルートの設定:◇一歩前進
スイッチの操作:#0075 B = ON

分岐終了
変数の操作:#0007 イベントの位置Y += 1
指定位置の情報取得:地形タグ, 地形タグ, ({イベントの位置X},{イベントの位置Y})
条件分岐:地形タグ = 1
スイッチの操作:#0076 C = OFF
ラベルジャンプ:処理終了

それ以外のとき
移動ルートの設定:EV004 (飛ばす)
移動ルートの設定:◇一歩前進
移動ルートの設定:◇一歩前進
移動ルートの設定:◇一歩前進
スイッチの操作:#0076 C = ON

分岐終了

分岐終了
条件分岐:このイベントが右を向いている
イベントの位置設定:EV002, ({イベントの位置X},{イベントの位置Y}) (向き: 右)
イベントの位置設定:EV003, ({イベントの位置X},{イベントの位置Y}) (向き: 右)
イベントの位置設定:EV004, ({イベントの位置X},{イベントの位置Y}) (向き: 右)
変数の操作:#0006 イベントの位置X += 1
指定位置の情報取得:地形タグ, 地形タグ, ({イベントの位置X},{イベントの位置Y})
条件分岐:地形タグ = 1
スイッチの操作:#0074 A = OFF
スイッチの操作:#0075 B = OFF
スイッチの操作:#0076 C = OFF
ラベルジャンプ:処理終了

それ以外のとき
移動ルートの設定:EV002 (飛ばす)
移動ルートの設定:◇一歩前進
スイッチの操作:#0074 A = ON

分岐終了
変数の操作:#0006 イベントの位置X += 1
指定位置の情報取得:地形タグ, 地形タグ, ({イベントの位置X},{イベントの位置Y})
条件分岐:地形タグ = 1
スイッチの操作:#0075 B = OFF
スイッチの操作:#0076 C = OFF
ラベルジャンプ:処理終了

それ以外のとき
移動ルートの設定:EV003 (飛ばす)
移動ルートの設定:◇一歩前進
移動ルートの設定:◇一歩前進
スイッチの操作:#0075 B = ON

分岐終了
変数の操作:#0006 イベントの位置X += 1
指定位置の情報取得:地形タグ, 地形タグ, ({イベントの位置X},{イベントの位置Y})
条件分岐:地形タグ = 1
スイッチの操作:#0076 C = OFF
ラベルジャンプ:処理終了

それ以外のとき
移動ルートの設定:EV004 (飛ばす)
移動ルートの設定:◇一歩前進
移動ルートの設定:◇一歩前進
移動ルートの設定:◇一歩前進
スイッチの操作:#0076 C = ON

分岐終了

分岐終了
条件分岐:このイベントが上を向いている
イベントの位置設定:EV002, ({イベントの位置X},{イベントの位置Y}) (向き: 上)
イベントの位置設定:EV003, ({イベントの位置X},{イベントの位置Y}) (向き: 上)
イベントの位置設定:EV004, ({イベントの位置X},{イベントの位置Y}) (向き: 上)
変数の操作:#0007 イベントの位置Y -= 1
指定位置の情報取得:地形タグ, 地形タグ, ({イベントの位置X},{イベントの位置Y})
条件分岐:地形タグ = 1
スイッチの操作:#0074 A = OFF
スイッチの操作:#0075 B = OFF
スイッチの操作:#0076 C = OFF
ラベルジャンプ:処理終了

それ以外のとき
移動ルートの設定:EV002 (飛ばす)
移動ルートの設定:◇一歩前進
スイッチの操作:#0074 A = ON

分岐終了
変数の操作:#0007 イベントの位置Y -= 1
指定位置の情報取得:地形タグ, 地形タグ, ({イベントの位置X},{イベントの位置Y})
条件分岐:地形タグ = 1
スイッチの操作:#0075 B = OFF
スイッチの操作:#0076 C = OFF
ラベルジャンプ:処理終了

それ以外のとき
移動ルートの設定:EV003 (飛ばす)
移動ルートの設定:◇一歩前進
移動ルートの設定:◇一歩前進
スイッチの操作:#0075 B = ON

分岐終了
変数の操作:#0007 イベントの位置Y -= 1
指定位置の情報取得:地形タグ, 地形タグ, ({イベントの位置X},{イベントの位置Y})
条件分岐:地形タグ = 1
スイッチの操作:#0076 C = OFF
ラベルジャンプ:処理終了

それ以外のとき
移動ルートの設定:EV004 (飛ばす)
移動ルートの設定:◇一歩前進
移動ルートの設定:◇一歩前進
移動ルートの設定:◇一歩前進
スイッチの操作:#0076 C = ON

分岐終了

分岐終了
条件分岐:このイベントが左を向いている
イベントの位置設定:EV002, ({イベントの位置X},{イベントの位置Y}) (向き: 左)
イベントの位置設定:EV003, ({イベントの位置X},{イベントの位置Y}) (向き: 左)
イベントの位置設定:EV004, ({イベントの位置X},{イベントの位置Y}) (向き: 左)
変数の操作:#0006 イベントの位置X -= 1
指定位置の情報取得:地形タグ, 地形タグ, ({イベントの位置X},{イベントの位置Y})
条件分岐:地形タグ = 1
スイッチの操作:#0074 A = OFF
スイッチの操作:#0075 B = OFF
スイッチの操作:#0076 C = OFF
ラベルジャンプ:処理終了

それ以外のとき
移動ルートの設定:EV002 (飛ばす)
移動ルートの設定:◇一歩前進
スイッチの操作:#0074 A = ON

分岐終了
変数の操作:#0006 イベントの位置X -= 1
指定位置の情報取得:地形タグ, 地形タグ, ({イベントの位置X},{イベントの位置Y})
条件分岐:地形タグ = 1
スイッチの操作:#0075 B = OFF
スイッチの操作:#0076 C = OFF
ラベルジャンプ:処理終了

それ以外のとき
移動ルートの設定:EV003 (飛ばす)
移動ルートの設定:◇一歩前進
移動ルートの設定:◇一歩前進
スイッチの操作:#0075 B = ON

分岐終了
変数の操作:#0006 イベントの位置X -= 1
指定位置の情報取得:地形タグ, 地形タグ, ({イベントの位置X},{イベントの位置Y})
条件分岐:地形タグ = 1
スイッチの操作:#0076 C = OFF
ラベルジャンプ:処理終了

それ以外のとき
移動ルートの設定:EV004 (飛ばす)
移動ルートの設定:◇一歩前進
移動ルートの設定:◇一歩前進
移動ルートの設定:◇一歩前進
スイッチの操作:#0076 C = ON

分岐終了

分岐終了
ラベル:処理終了
ウェイト:120フレーム

以上繰り返し



挙動としてはそれほど多くないのですが、条件分岐を多用するため、大分長い内容となっています。


大まかな内容としては、向きを120フレームごとに変更し、向いている方に火炎をぶっ放します

また、移動先の条件として火炎イベントの移動先が地形タグ「1」であるかを判定し、そうでなければ固定砲台から発射する、といった内容となっています。

地形タグ「1」は移動できないマップに設定しておくと、プレイヤーが移動不可の場所(壁など)には火炎を放たないようになります





以下、火炎イベントABCです。
今回は射程3マスなので、火炎イベントは3つ用意しました。

これら3つは、ほとんど同じ内容です。
格納する位置情報の関係で、使っている変数が違うくらいですね。


イベント : 火炎A
tc25-4.png

<実行内容>
変数の操作:#0004 プレイヤーの位置X = プレイヤーのマップX
変数の操作:#0005 プレイヤーの位置Y = プレイヤーのマップY
変数の操作:#0148 Aの位置X = このイベントのマップX
変数の操作:#0149 Aの位置Y = このイベントのマップY
条件分岐:Aの位置X = プレイヤーの位置X
条件分岐:Aの位置Y = プレイヤーの位置Y
注釈:ここに仕様を書き込みます。
注釈:▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
画面のフラッシュ:(255,51,51,170), 5フレーム
SEの演奏:Attack2 (90, 100, 0)
HPの増減:パーティ全体, - 5
ウェイト:5フレーム
注釈:▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

分岐終了

分岐終了



イベント : 火炎B
tc25-5.png

<実行内容>
変数の操作:#0004 プレイヤーの位置X = プレイヤーのマップX
変数の操作:#0005 プレイヤーの位置Y = プレイヤーのマップY
変数の操作:#0150 Bの位置X = このイベントのマップX
変数の操作:#0151 Bの位置Y = このイベントのマップY
条件分岐:Bの位置X = プレイヤーの位置X
条件分岐:Bの位置Y = プレイヤーの位置Y
注釈:ここに仕様を書き込みます。
注釈:▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
画面のフラッシュ:(255,51,51,170), 5フレーム
SEの演奏:Attack2 (90, 100, 0)
HPの増減:パーティ全体, - 5
ウェイト:5フレーム
注釈:▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

分岐終了

分岐終了




イベント : 火炎C
tc25-6.png

<実行内容>
変数の操作:#0004 プレイヤーの位置X = プレイヤーのマップX
変数の操作:#0005 プレイヤーの位置Y = プレイヤーのマップY
変数の操作:#0152 Cの位置X = このイベントのマップX
変数の操作:#0153 Cの位置Y = このイベントのマップY
条件分岐:Cの位置X = プレイヤーの位置X
条件分岐:Cの位置Y = プレイヤーの位置Y
注釈:ここに仕様を書き込みます。
注釈:▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
画面のフラッシュ:(255,51,51,170), 5フレーム
SEの演奏:Attack2 (90, 100, 0)
HPの増減:パーティ全体, - 5
ウェイト:5フレーム
注釈:▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

分岐終了

分岐終了



内容としては、火炎イベントとプレイヤーの位置を取得して、位置が同じであればダメージを与える、という記述です。




この手のトラップは、色々と応用が効きます。
触れると動きを止められるとか、ブロックがせり出してきて押し出されるとか……

仕様の部分を変えて、いろんなトラップを作ってみましょう。




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





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

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

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

コメント

Secret

プロフィール

猫民のんたん

Author:猫民のんたん

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

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


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

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

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

この人とブロともになる

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