この記事は、
ツクールフォーラムアドベントカレンダー2021に向けて書いたよ。
「踏むとダメージを受ける罠」
あれです、床からトゲが出たり入ったりするやつ。
上にのってるのにダメージを受けなくてどうしよう?
っていう質問を時々見かけるので
作例を公開しようと思います。
<用意するもの>
スイッチ・・・1つ(並列処理用)
変数6個・・・プレイヤーX座標取得用
プレイヤーY座標取得用
リージョンID取得用
歩数の取得用
前回の歩数を覚えておく用
ループ回数カウント用
リージョン・・・1つ
(マップ変種画面のタイルセット表示枠の
ABC…RのRがリージョンタイルです。
リージョンとは、敵の出現エリアを
設定するのが主な役割ですが
とても幅広く活用できる便利なタイルなのだ!)
<ざっくりとした制作の流れ>
罠の絵を表示するだけのイベントと、ダメージを制御するイベントを作り
足元のリージョンと罠の絵の状態を判断してダメージを与えます。
<制作の手順>
①罠を置きたい場所をリージョンタイルで塗る。
何番でもいいのですが、とりあえず、8番にしておきます。
②罠のアニメーションを表示するだけのイベントを作成する。
アニメーションは、自律移動のカスタムで行います。
大体こんな内容です。
-----------------
: :◇左を向く
: :◇ウェイト:3フレーム
: :◇スイッチON:0002(ダメージ診断開始)
: :◇右を向く
: :◇ウェイト:3フレーム
: :◇上を向く
: :◇ウェイト:60フレーム(とげが出た状態で長めに停止)
: :◇右を向く
: :◇ウェイト:3フレーム
: :◇スイッチOFF:0002(ダメージ診断終了)
: :◇左を向く
: :◇ウェイト:3フレーム
: :◇下を向く
: :◇ウェイト:60フレーム
(とげが出てない状態で長めに停止)
-----------------
③上記の罠をコピペして、リージョンタイルの上に配置。
④ダメージ制御用のイベントを作成。邪魔にならなくて忘れ去られない場所に設置。
⑤制御用イベントは、ダメージ診断開始用のスイッチがONになったら
起動する並列処理です。
大体こんな内容です。
-----------------
◆変数の操作:#0008 プレイヤーX = プレイヤーのマップX
◆変数の操作:#0009 プレイヤーY = プレイヤーのマップY
↓上記で取得した座標のリージョンIDを調べます↓
◆指定位置の情報取得:リージョンID, リージョンID, ({プレイヤーX},{プレイヤーY})
◆条件分岐:リージョンID = 8
↓リージョンの上にプレイヤーがいる場合の処理です↓
↓自由にダメージを演出してください ↓
◆画面のフラッシュ:(255,0,0,102), 20フレーム
◆SEの演奏:Bite (90, 100, 0)
◆HPの増減:パーティ全体, - 10 (戦闘不能を許可)
◆ウェイト:10フレーム
↓上に乗り続けていたらダメージを受けたいけど ↓
↓このままだとダメージが入りすぎるのでウェイト処理を作ります↓
◆変数の操作:#0011 カウント = 0(ループ回数を数える)
◆変数の操作:#0007 前の歩数 = 歩数(基準となる歩数を取得)
◆ループ
◆変数の操作:#0011 カウント += 1
◆変数の操作:#0001 歩数 = 歩数(現在の歩数を取得)
◆条件分岐:歩数 ≠ 前の歩数
↓プレイヤーが移動していたら、ループを終了↓
◆ラベル:中断
◆ループの中断
◆
:分岐終了
◆条件分岐:カウント = 6
↓60フレーム経過しても、ループを終了↓
◆ラベルジャンプ:中断
◆
:分岐終了
↓ループ終了のフラグがたってなかったらウエイトを追加↓
◆ウェイト:10フレーム
◆
:以上繰り返し
◆
:分岐終了
-----------------
以上です。簡単だね!
トゲ以外でも、例えば「毒の沼地」でも触れている間はダメージを受けたい
っていう時に使えるよ。
やり方は千差万別、他にもいろいろあると思うから考えてみてね!
おしまい!
ちなみに2000の頃は、罠に乗るとダメージを受けた後ノックバックするのが
多かったように思います。
ずーっとノックバックしていって、最終的に罠の外に追い出されます。
そういう昔ながらの罠も良いんじゃないかしらと思ったり。
[0回]
PR