当たり判定の処理を追加する/ピクチャー弾丸を飛ばすRPGツクール2000/自作戦闘【サイトトップへ戻る】ピクチャー弾丸を飛ばす■当たり判定の処理を追加する(更新:2009/08/29)ピクチャー弾丸を飛ばすイベントに、マップイベントに対する当たり判定の処理のイベントを追加します。移動しない敵キャラとして設定してください。このページは続きとなっているページですピクチャー弾丸の基礎ページをご覧の上でこのページをご覧ください。※この色の部分はピクチャー弾丸を飛ばすのページにあった部分です。☆当たり判定を判断する方法ピクチャーの弾丸が敵キャラに当たっているかどうかを判断させる方法は、以下の3つがあります。敵キャラのX座標、Y座標を変数に取得して、敵キャラに弾丸が当たっているかどうかを判断します。ピクチャー弾丸の設定では使い勝手が悪いので、今回の制作では使用しません。取得したイベントIDが敵のイベントIDである時には、敵キャラに当たったと判断します。アクションRPGの当たり判定では、よく使われている設定方法です。移動中の敵キャラへの命中率が下がると言う欠点があります。※詳しくは後ほど説明。敵キャラに弾丸が重なっている時に「当たった」と判断します。敵1体ごとに当たり判定の処理を設定する必要があり、たくさんの敵キャラがいる場合には、あまりお勧めできません。敵キャラ(ターゲット)がピクチャーである時には、この設定方法になります。移動している途中の敵キャラの当たり判定がうまく行えない事があります。主人公から発射された弾丸(黄色の矢印)は当たります。敵が赤いマスへ移動し終わってなくても、敵キャラに当たります。当たり判定が行われない事があります。当たり判定を2重に設定する事で回避する事ができます。当たり判定の部分を2重設定しています。☆命中率について命中率は、敵キャラの移動設定によって、大きく異なります。基本的に主人公に近寄るなど、予測しやすい移動設定にしますと、命中率は上がります。逆にランダム移動などの予測しにくい移動設定を多くしますと、命中率は下がります。敵キャラが停止している時間が長くなりますので、命中率は上がります。逆に移動頻度の数字を大きくしますと、命中率は下がります。基本的にイベントIDで当たり判定をお勧めします。敵キャラの移動頻度を「8」などにしますと、命中率が低くなりますので、そのような時には画面位置で当たり判定で設定すると良いでしょう。画面位置で当たり判定の設定はお勧めできません。敵キャラではない、移動しない障害物のマップイベントの当たり判定は、イベントIDで当たり判定で処理した方が良いでしょう。敵キャラではない当たり判定→イベントIDで当たり判定と言った使い分けもできます。大きいイベントIDにしてください。イベントID0001番=敵キャラ1イベントID0002番=階段イベントイベントID0003番=敵キャラ2イベントID0004番=宝箱イベントイベントID0005番=看板イベントなどとなっている場合は、イベントID0001番=階段イベントイベントID0002番=宝箱イベントイベントID0003番=看板イベントイベントID0004番=敵キャラ1イベントID0005番=敵キャラ2と変えてください。敵のイベントIDを他のイベントよりも大きいIDにしておく事で、イベントIDが4以上の時には敵キャラと判断すると言った設定を行う事ができます。変数[0009:最小敵イベントID]には、マップ内で最も小さい敵のイベントIDを設定しておきます。弾丸の位置のイベントIDを取得して、敵キャラの当たり判定を行います。下記の☆画面位置で当たり判定を設定をご覧ください。▼☆画面位置で当たり判定を設定の所まで移動スイッチと変数の番号と使用内容の一覧表です。初期設定が終わったらON→弾丸処理実行。敵キャラの1ページを呼び出す時にON。ONの時には弾丸01は移動中。ONの時には弾丸02は移動中。ONの時には弾丸03は移動中。決定キーが押されているかどうかを判断する時に使用。ピクチャー弾丸が移動する距離(射程)を設定。向きに合わせて1回の処理で移動するXの移動量を設定。向きに合わせて1回の処理で移動するYの移動量を設定。弾丸の位置のX座標を設定。弾丸の位置のY座標を設定。弾丸の位置の地形IDやイベントIDを取得。敵キャラの1ページ目を呼び出す時に使用。マップ内で最も小さい敵イベントIDを設定。弾丸が発射して、次の弾丸が発射するまでの間をカウント。主人公がダメージを受けた時の無敵時間を設定。変数[0002:移動距離]以上の値になったら弾丸01を消去。変数[0002:移動距離]以上の値になったら弾丸02を消去。変数[0002:移動距離]以上の値になったら弾丸03を消去。弾丸01のX位置を記憶。弾丸02のX位置を記憶。弾丸03のX位置を記憶。弾丸01のY位置を記憶。弾丸02のY位置を記憶。弾丸03のY位置を記憶。弾丸01の1回のXの移動量を記憶。弾丸02の1回のXの移動量を記憶。弾丸03の1回のXの移動量を記憶。弾丸01の1回のYの移動量を記憶。弾丸02の1回のYの移動量を記憶。弾丸03の1回のYの移動量を記憶。弾丸01の前のX座標を代入し、次の処理の時に使用。弾丸02の前のX座標を代入し、次の処理の時に使用。弾丸03の前のX座標を代入し、次の処理の時に使用。弾丸01の前のY座標を代入し、次の処理の時に使用。弾丸02の前のY座標を代入し、次の処理の時に使用。弾丸03の前のY座標を代入し、次の処理の時に使用。敵キャラ01のダメージ量を設定。10以上で敵キャラ01が消滅。敵キャラ02のダメージ量を設定。10以上で敵キャラ01が消滅。初期設定に敵HPを初期化するイベントなどを追加します。▼2ページ目イベント出現条件:スイッチ[0001:システム起動]がONイベント開始条件:決定キーが押されたときイベント実行内容の設定は不要です。弾丸処理に敵の当たり判定を行うイベントを追加します。敵キャラの画面位置から敵キャラの当たり判定を行います。使用するスイッチと変数は以下の通りです。初期設定が終わったらON→弾丸処理実行。敵キャラの1ページを呼び出す時にON。ONの時には弾丸01は移動中。ONの時には弾丸02は移動中。ONの時には弾丸03は移動中。決定キーが押されているかどうかを判断する時に使用。ピクチャー弾丸が移動する距離(射程)を設定。向きに合わせて1回の処理で移動するXの移動量を設定。向きに合わせて1回の処理で移動するYの移動量を設定。弾丸が発射して、次の弾丸が発射するまでの間をカウント。主人公がダメージを受けた時の無敵時間を設定。変数[0002:移動距離]以上の値になったら弾丸01を消去。変数[0002:移動距離]以上の値になったら弾丸02を消去。変数[0002:移動距離]以上の値になったら弾丸03を消去。弾丸01のX位置を記憶。弾丸02のX位置を記憶。弾丸03のX位置を記憶。弾丸01のY位置を記憶。弾丸02のY位置を記憶。弾丸03のY位置を記憶。弾丸01の1回のXの移動量を記憶。弾丸02の1回のXの移動量を記憶。弾丸03の1回のXの移動量を記憶。弾丸01の1回のYの移動量を記憶。弾丸02の1回のYの移動量を記憶。弾丸03の1回のYの移動量を記憶。敵キャラ01のダメージ量を設定。10以上で敵キャラ01が消滅。敵キャラ02のダメージ量を設定。10以上で敵キャラ01が消滅。敵キャラ01の画面位置Xを代入し、当たり判定を確認。敵キャラ02の画面位置Xを代入し、当たり判定を確認。敵キャラ01の画面位置Yを代入し、当たり判定を確認。敵キャラ02の画面位置Yを代入し、当たり判定を確認。初期設定に敵HPを初期化するイベントを追加します。コモンイベントに設定していた弾丸処理は、この初期設定の2ページ目に移動します。コモンイベントに弾丸処理を設定しない理由は、マップごとに敵キャラの数や敵のイベントIDが異なるために、どのマップでも同じ弾丸処理を動かすのが難しいためです。▼2ページ目イベント出現条件:スイッチ[0001:システム起動]がONイベント開始条件:定期的に並列処理する※コモンイベント「弾丸処理」の設定をコピーする。敵キャラのマップイベントを作成します。敵キャラの設定は同じ設定になります。1ページ目には、敵キャラの行動設定や敵キャラに攻撃を与えた時の処理を設定します。敵キャラを倒した時には、敵キャラの位置を壁のマスなどへ移動します。これは敵キャラが消滅しても、消滅した所に当たり判定が残ってしまうためです。2ページ目は敵キャラを倒した時に表示されるページです。◆変数の操作:[0022:無敵時間]代入,-30<0.5秒間無敵にする◆〜敵の攻撃処理などを設定してください〜▼2ページ目イベント出現条件:変数[0101:敵ダメージ01]が10以上イベント開始条件:決定キーが押されたときグラフィック:透明イベント実行内容の設定は不要です。2体目以降の敵キャラの設定は、1体目をコピーして、それを基に設定した方が楽に設定する事ができます。◆変数の操作:[0022:無敵時間]代入,-30◆〜敵の攻撃処理などを設定してください〜▼2ページ目イベント出現条件:変数[0102:敵ダメージ02]が10以上イベント開始条件:決定キーが押されたときグラフィック:透明イベント実行内容の設定は不要です。敵キャラの移動タイプを移動ルート指定にしておき、[移動ルートの設定]にて、以下の設定を行ってください。※2つのオプションの両方にチェックを入れる。急に主人公に向かって突進してくるような移動設定も可能です。以下のように設定してください。■障害物イベント※イベントIDを敵キャラと認識されるIDにしておくイベント出現条件:なしイベント開始条件:決定キーが押されたときグラフィック:障害物のグラフィックイベント実行内容は何も設定しません。1つ作成しましたら、あとはコピー&貼り付けで増やしてください。☆補足マップイベントの設定数が多ければ多いほど、処理落ちが発生しやすくなります。あまりに無駄と思えるようなマップイベントの設定は避けてください。このページの設定を行ってください。敵キャラなどのマップイベントの当たり判定を追加します。弾丸が壁を貫通しないようにします。固定画面(横20×縦15マス+マップループ無し)では無い場合は、このページの設定が必要です。敵も弾丸を撃つようにします。※先に当たり判定の処理を追加するを設定してください。敵の視野内に入ると主人公に近づくようにします。※先に当たり判定の処理を追加するを設定してください。