RPGツクール2000/演出
■矢が飛んでくるトラップ
(更新:2013/07/13)


床スイッチを踏むと矢が飛んでくるトラップを設定します。





☆画像の準備
矢の画像をキャラセット(CharSet)として準備してください。







 
 
 
この画像を使う場合は、
画像の上で右クリック
名前を付けて画像を保存
を選択してパソコンに保存し、
ツクールにインポートしてください。

※他のYADOTのページで使用する
 トゲ床やトラバサミの画像もありますが
 まあ気にしないでください。


☆スイッチ・変数
スイッチ・変数の一覧です。

スイッチ
番号 名前 使用内容
0001 矢の発射01 床スイッチを踏んだ時にON→二度と作動しないようにする。
 
0021 矢の移動処理01 ONにすると矢が飛びます。

変数
番号 名前 使用内容
0001 画面位置X 主人公と矢との画面の距離を判断する時に使用。
0002 画面位置Y 主人公と矢との画面の距離を判断する時に使用。

※先にスイッチや変数の名前を設定しておくと、
 この後のイベント設定が楽になると思います。




☆設定内容の確認
今回は、指定されたマス(床スイッチ)に主人公が移動しますと、
5マス上から下向きに矢が飛んで来るようにします。


矢の移動速度は「2倍速」、移動頻度は「」とします。

矢は下へ8マス移動した後にスイッチがOFFになって消滅します。
※主人公に当たった場合はその場で消滅。

一度矢が飛びますと、再び床スイッチを踏んでも矢は飛んで来なくなります。


矢の当たり判定は、
矢と主人公との距離が7ピクセル以内である時に当たったとします。
イベント処理としては、矢と主人公との画面の距離(ピクセル数)を出した上で、
「除算,8」を行って7ピクセル以内なのかどうかを判断します。
    両者の距離が-7〜7の間 除算8 0になる   当たった
両者の距離が-8以下または8以上 除算8 0以外になる 当たっていない




☆マップイベントを設定する
今回は2種類のマップイベントを設定します。




■マップイベント「床スイッチ」
▼1ページ目
イベント開始条件:主人公から触れたとき
グラフィック:透明、または床スイッチと分かる物
プライオリティタイプ:通常キャラの下
◆効果音の演奏:弓1<矢が発射する音
◆スイッチの操作:[0021:矢の移動処理01]をONにする
◆スイッチの操作:[0001:矢の発射01]をONにする


▼2ページ目
イベント出現条件:スイッチ[0001:矢の発射01]がON
イベント開始条件:決定キーが押されたとき
グラフィック:透明、または床スイッチと分かる物
プライオリティタイプ:通常キャラの下
イベント実行内容には何も設定しません。



■マップイベント「矢」
▼1ページ目
イベント出現条件:スイッチ[0021:矢の移動処理01]がON
イベント開始条件:定期的に並列処理する
グラフィック:矢の画像(下向き)
プライオリティタイプ:通常キャラと重ならない
移動タイプ:移動ルート指定
移動頻度:
移動ルート設定:すりぬけ開始,下に移動x8,スイッチ[0021]OFF
◆変数の操作:[0001:画面位置X]代入,このイベントの画面X
◆変数の操作:[0002:画面位置Y]代入,このイベントの画面Y
◆変数の操作:[0001:画面位置X]減算,主人公の画面X
◆変数の操作:[0002:画面位置Y]減算,主人公の画面Y
◆変数の操作:[0001〜0002]除算,8
◆条件分岐:変数[0001:画面位置X]が0
 ◆条件分岐:変数[0002:画面位置Y]が0
  ◆効果音の演奏:打撃3
  ◆キャラクターのフラッシュ:主人公,0.2秒(R31,G00,B00,V31)
  ◆HPの増減:メンバー全員のHPを5減らす
  ◆スイッチの操作:[0021:矢の移動処理01]をOFFにする
  ◆
 :分岐終了
 ◆
:分岐終了




同様のイベントを複数設定する場合は、
2種類のマップイベントをコピー&貼り付けして、
スイッチの番号を変えて設置してください。
※変数の番号は同じ番号でも問題ありません。

別のマップへ移動した時にトラップを復活させたい時には、
別のマップへ移動するイベントの中に、
スイッチをOFFにする設定を行ってください。

なお、スイッチの番号は連番にした方がOFFにする時に、
◆スイッチの操作:[0001〜0040]をOFFにする
などと一括でOFFにする事が出来ます。

設定例ではHPを減らす設定になっていますが、
イベントコマンド:状態の変更を使って毒状態にするトラップにも出来ます。



☆踏むたびに矢が発射される
上記の設定では、一度床スイッチを踏みますと、
再び床スイッチを踏んでも矢は飛んで来ません。
これを床スイッチを踏む度に矢が飛んで来るように改良します。
※矢が飛んでいる最中に床スイッチを踏んでも矢は発射されません。



■マップイベント「床スイッチ」
▼1ページ目
イベント開始条件:主人公から触れたとき
グラフィック:透明、または床スイッチと分かる物
プライオリティタイプ:通常キャラの下
◆効果音の演奏:弓1
◆イベントの位置を設定:矢,(0009,0002)<矢が飛び始めるマスへ移動
◆スイッチの操作:[0021:矢の移動処理01]をONにする
◆スイッチの操作:[0001:矢の発射01]をONにする<削除する


▼2ページ目
イベント出現条件:スイッチ[0021:矢の移動処理01]がON
イベント開始条件:決定キーが押されたとき
グラフィック:透明、または床スイッチと分かる物
プライオリティタイプ:通常キャラの下

イベント実行内容は何も設定しません。

改良は床スイッチのみであり、のイベントはそのままの設定になります。



☆定期的に矢が発射される
床スイッチでの発射では無く、
決められた時間ごとに自動的に矢が発射されるようにする場合は、
床スイッチイベントを削除して、代わりに以下のイベントを設定してください。
※マップの左上など、分かりやすい所に設定してください。
のイベントはそのままの設定になります。



■マップイベント「自動発射」
▼1ページ目
イベント開始条件:定期的に並列処理する
グラフィック:透明
◆効果音の演奏:弓1
◆イベントの位置を設定:矢,(0009,0002)<矢の発射位置へ移動
◆スイッチの操作:[0021:矢の移動処理01]をONにする
◆ウェイト:2.0秒<次の発射時間を設定




複数の矢を同時に発射する場合は、以下のように設定してください。

■マップイベント「自動発射」
▼1ページ目
イベント開始条件:定期的に並列処理する
グラフィック:透明
◆効果音の演奏:弓1
◆イベントの位置を設定:矢01,(0009,0002)<各矢ごとの発射位置に移動
◆イベントの位置を設定:矢02,(0011,0002)
◆イベントの位置を設定:矢03,(0013,0002)
◆イベントの位置を設定:矢04,(0015,0002)
◆イベントの位置を設定:矢05,(0017,0002)
◆スイッチの操作:[0021〜0025]をONにする
◆ウェイト:2.0秒




複数の矢を順番に発射していく場合は、以下のように設定してください。

■マップイベント「自動発射」
▼1ページ目
イベント開始条件:定期的に並列処理する
グラフィック:透明
◆効果音の演奏:弓1
◆イベントの位置を設定:矢01,(0009,0002)
◆スイッチの操作:[0021:矢の移動処理01]をONにする
◆ウェイト:0.4秒
◆効果音の演奏:弓1
◆イベントの位置を設定:矢02,(0011,0002)
◆スイッチの操作:[0022:矢の移動処理02]をONにする
◆ウェイト:0.4秒
◆効果音の演奏:弓1
◆イベントの位置を設定:矢03,(0013,0002)
◆スイッチの操作:[0023:矢の移動処理03]をONにする
◆ウェイト:0.4秒
◆効果音の演奏:弓1
◆イベントの位置を設定:矢04,(0015,0002)
◆スイッチの操作:[0024:矢の移動処理04]をONにする
◆ウェイト:0.4秒
◆効果音の演奏:弓1
◆イベントの位置を設定:矢05,(0017,0002)
◆スイッチの操作:[0025:矢の移動処理05]をONにする
◆ウェイト:0.4秒




☆100%の命中率にならないようにするために
地形や矢の発射位置などによっては、
主人公がどんなに素早く移動しても矢を避ける事が出来ず、
矢が100%の確率で命中する状態になる場合があります。

100%の命中率にしないためには、以下のような改善が必要です。
・矢の移動速度を下げる。(移動頻度は「8」のままが望ましいです)
・矢の射程(移動ルートの移動歩数)を少なくする。
・矢の発射位置を遠ざける。(下図参照)



なお、何らかのイベントを実行すると矢が飛ばなくなるような設定がある場合は、
100%の命中率の矢があっても良いかもしれません。



◎関連ページ
 ●トゲ床のトラップ
 ●トラバサミのトラップ


YADOTトップ  このサイトは何?  気紛れな空間へ戻る  メール