敵も弾丸発射/ピクチャー弾丸を飛ばすRPGツクール2000/自作戦闘【サイトトップへ戻る】ピクチャー弾丸を飛ばす■敵も弾丸発射(更新:2011/08/06)敵キャラも5マス先まで弾丸を飛ばすように設定します。このページは続きとなっているページですピクチャー弾丸の基礎ページをご覧の上でこのページをご覧ください。先に当たり判定の処理を追加するの設定を行ってください。左のような4×4ドットの敵の弾丸画像を用意してください。名前を付けて画像を保存を選択してパソコン内へ保存し、この画像をインポートして使っても問題ありません。敵は主人公が5マス以内に近づくと弾丸を発射します。※6通りの5マス以内の発射設定を紹介します。弾丸の射程は主人公と同じく5マスまでです。敵の弾丸は一度弾丸を発射しますと、2秒間は次の弾丸が発射できないようにします。※発射間隔は0.4秒位まで短くする事ができます。次の弾丸を発射してしまいます。敵の弾丸を避けながら主人公が攻撃する事が不可能になります。敵の弾丸は他の敵への当たり判定を設定しませんので、他の敵に弾丸は素通りします。主人公がいるかどうかを調べてから弾丸を発射します。敵も弾丸発射を設定しますと、自動的に監視イベントの設定も行われます。そのため、別途監視イベントを設定する必要はありません。先に敵の弾丸処理を設定した上で、このページの下の方にあります☆見つけたら近寄るを設定してください。当たったかどうかを判断します。主人公の中心から7ドット以内に敵の弾丸が入った時には、当たったと判断されます。実際に7ドット以内なのかどうかを調べる時には、まず主人公の画面位置と弾丸の画面位置との距離を算出します。◆変数の操作:[0011:敵弾:当たり確認X]代入,〜弾丸のX位置〜◆変数の操作:[0011:敵弾:当たり確認X]減算,主人公の画面Xと言った設定で算出します。弾丸がX68、主人公がX64の場合は、68−64=4となり、X位置の両者の距離は「4」になります。◆変数の操作:[0012:敵弾:当たり確認Y]代入,〜弾丸のY位置〜◆変数の操作:[0012:敵弾:当たり確認Y]減算,主人公の画面Y◆変数の操作:[0012:敵弾:当たり確認Y]加算,8と言った設定で算出します。主人公の画面Yは主人公の足元の画面位置になりますので、それを胸の位置(主人公がいるマスの中心)にするために「加算8」を実行しています。X位置、Y位置の距離が出ましたら、その距離を「8」で割ります。当たり判定の範囲外(−8以下or8以上)である場合は「0以外」になります。当たった時の処理(主人公のダメージ処理)を実行します。実際の当たり判定の処理は以下のように設定します。☆スイッチ・変数スイッチと変数の番号と使用内容の一覧表です。初期設定が終わったらON→弾丸処理実行。ONの時には弾丸01は移動中。ONの時には弾丸02は移動中。ONの時には弾丸03は移動中。ONの時には敵弾丸01は移動中。ONの時には敵弾丸02は移動中。ONの時には敵01が主人公に近づきます。ONの時には敵02が主人公に近づきます。決定キーが押されているかどうかを判断する時に使用。ピクチャー弾丸が移動する距離(射程)を設定。向きに合わせて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が消滅。0以上の時に敵01の弾丸が発射可能になる。0以上の時に敵02の弾丸が発射可能になる。敵弾丸01の現在の移動量を記憶。敵弾丸02の現在の移動量を記憶。主人公と敵01とのX座標の距離を算出。主人公と敵02とのX座標の距離を算出。主人公と敵01とのY座標の距離を算出。主人公と敵02とのY座標の距離を算出。敵弾丸01のX位置を記憶。敵弾丸02のX位置を記憶。敵弾丸01のY位置を記憶。敵弾丸02のY位置を記憶。敵弾丸01の1回のXの移動量を記憶。敵弾丸01の1回のYの移動量を記憶。敵弾丸02の1回のXの移動量を記憶。敵弾丸02の1回のYの移動量を記憶。☆初期設定イベントに追加設定まずは初期設定イベントにイベントを追加します。敵の弾丸は2発分(ピクチャー2枚)を用意します。▼2ページ目*追加・変更はありません。敵の弾丸処理用のイベントは、マップイベント「初期設定」の2ページ目に設定してください。主人公の弾丸処理と一緒に設定するか、または新しいマップイベントで設定してください。敵キャラのイベントIDよりも小さいイベントIDにしてください。イベントID:0001:初期設定イベントID:0002:敵キャラ01イベントID:0003:敵キャラ02イベントID:0004:敵弾丸処理などとなった場合は、イベントID:0001:初期設定イベントID:0002:敵弾丸処理イベントID:0003:敵キャラ01イベントID:0004:敵キャラ02と順番を並び替えてください。今回の設定例では新規マップイベントとして設定します。◆変数の操作:[0009:最小敵イベントID]代入,3などの設定変更をお忘れなく!下記設定例には「〜あとで設定〜」と言う部分があります。この部分は「弾丸を発射する条件(攻撃範囲)」によって設定方法が変わります。「〜あとで設定〜」と書かれた以外の所を先に設定してください。敵弾丸02の設定は、敵弾丸01の設定をコピーした物を修正して設定します。◆変数の操作:[0011〜0012]除算,8<主人公と弾丸との距離が-7〜7以内か調べる。「〜あとで設定〜」としていた部分に、弾丸を発射するイベントを追加設定します。追加するイベントは、弾丸を発射する条件(攻撃範囲)によって設定方法が異なります。▼画像をクリックするとその設定例が書いてある所にジャンプします。敵が向いている方向の直線状(5マス以内)に主人公がいる場合は、弾丸を発射します。▼攻撃範囲(下向きの場合)注釈:弾丸発射の所は以下のように設定してください。:弾丸発射の所は以下のように設定してください。正面5マス以内&左右2マス以内に主人公がいる場合は、弾丸を発射します。◆変数の操作:[0201:敵弾:両者の距離X01]除算,6◆変数の操作:[0211:敵弾:両者の距離Y01]除算,3などの設定があります。この設定は弾丸を発射するマス数を決める処理になります。両者の距離が5マス以内→弾丸を発射する両者の距離が5マス以上→弾丸を発射しないになります。弾丸の1回の移動量を決めるイベント処理に関しては、別ページにて解説します。注釈:弾丸発射の所は以下のように設定してください。◆変数の操作:[0201:敵弾:両者の距離X01]除算,6◆変数の操作:[0211:敵弾:両者の距離Y01]除算,3などの設定があります。この設定は弾丸を発射するマス数を決める処理になります。両者の距離が5マス以内→弾丸を発射する両者の距離が5マス以上→弾丸を発射しないになります。弾丸の1回の移動量を決めるイベント処理に関しては、別ページにて解説します。注釈:弾丸発射の所は以下のように設定してください。扇形に正面5マス以内に主人公がいる場合は、弾丸を発射します。▼攻撃範囲(下向きの場合)弾丸の1回の移動量を決めるイベント処理に関しては、別ページにて解説します。注釈:弾丸発射の所は以下のように設定してください。中に「除算,6」を行っている設定があります。この設定は弾丸を発射するマス数を決める処理になります。両者の距離が5マス以内→弾丸を発射する両者の距離が5マス以上→弾丸を発射しないになります。弾丸の1回の移動量を決めるイベント処理に関しては、別ページにて解説します。注釈:弾丸発射の所は以下のように設定してください。☆壁の当たり判定を追加する弾丸が壁に当たったら消えるようにします。主人公の弾丸で設定する壁の当たり判定を追加するの設定をそのまま設定します。地形IDなどの説明は、壁の当たり判定を追加するのページをご覧ください。注釈:弾丸移動の所は以下のようにイベントを追加してください。◆変数の操作:[0006:Y座標]加算,変数[0170]の値の設定も行ってください。弾丸を発射する前に壁があるかどうかを調べる必要があります。発射前に壁の有無を調べる方法は↓をクリックしてご確認ください。壁の向こう側にいる主人公(見えない主人公)に向って弾丸を発射します。主人公に当たる事はありません。☆画面スクロールに対応させる画面スクロールに対応できるように設定を改良します。先に画面スクロールに対応させるの設定を行ってください。追加設定に関しては、マップループ無し、マップループありによって異なります。▼マップループありの記載位置まで飛ぶ★マップループ無しの場合の設定例)主人公の弾丸処理の中にあります画面スクロールの所に、以下のイベントを追加してください。以下のイベントを追加してください。下記の設定は「X座標(Y座標)」で設定していた物を「画面X(画面Y)」に変えています。◆変数の操作:[0201〜0210]代入,主人公の画面X◆変数の操作:[0211〜0220]代入,主人公の画面Y◆変数の操作:[0201:敵弾:両者の距離X01]減算,敵キャラ01の画面X◆変数の操作:[0211:敵弾:両者の距離Y01]減算,敵キャラ01の画面Y◆変数の操作:[0202:敵弾:両者の距離X02]減算,敵キャラ02の画面X◆変数の操作:[0212:敵弾:両者の距離Y02]減算,敵キャラ02の画面Y◆変数の操作:[0201〜0220]除算,16に変えてください。以下のように設定してください。☆敵のダメージ量(HP)の設定を増やす敵01のダメージ量(HP)の設定を増やす設定例です。今回は「10」から「20」(10発で倒すから20発で倒す)に変更します。主人公がダメージを受けるようにする場合に必要な設定です。敵キャラに触れてもダメージが受けない場合は、この色の設定は不要です。▼2ページ目イベント出現条件:変数[0101:敵ダメージ01]が20以上イベント開始条件:決定キーが押されたときグラフィック:透明イベント実行内容は何も設定しません。マップイベント「敵弾丸処理」の以下の注釈の所の設定を変更してください。主人公を見つけたら近づきながら攻撃していくように設定します。→敵は移動すると設定します。マップイベント「敵キャラ01」の設定を行います。ページの設定は、以下の通りです。動かず移動しないで下向きの固定など、自由に設定する事ができます。主人公から攻撃を受けた場合は、強制的にスイッチがONになるようにする場合は、1ページ目のこの色の設定を行ってください。主人公がダメージを受けるようにする場合に必要な設定です。敵キャラに触れてもダメージが受けない場合は、この色の設定は不要です。移動頻度:2※1にすると回転速度が遅くなります。▼2ページ目※このページは1ページ目をコピー&貼り付けして作成してください。▼3ページ目イベント出現条件:変数[0101:敵ダメージ01]が10以上イベント開始条件:決定キーが押されたときグラフィック:透明イベント実行内容は何も設定しません。マップイベント「初期設定」にスイッチをOFFにする設定を追加します。※一応敵キャラ2体分と言う事で、スイッチ0041〜0042番の設定になっています。▼2ページ目*追加・変更はありません。注釈:発射!の所にスイッチをONにする設定を追加してください。◆変数の操作:[0181:敵弾:発射カウント01]代入,-120◆スイッチの操作:[0021:敵弾丸移動中01]をONにする◆スイッチの操作:[0041:主人公に近づく:敵01]をONにする◆効果音の演奏:冷気2以上で設定完了です。◆キャラクターの動作指定:このイベント,主人公の方を向くを設定してください。このページの設定を行ってください。敵キャラなどのマップイベントの当たり判定を追加します。弾丸が壁を貫通しないようにします。固定画面(横20×縦15マス+マップループ無し)では無い場合は、このページの設定が必要です。敵も弾丸を撃つようにします。※先に当たり判定の処理を追加するを設定してください。敵の視野内に入ると主人公に近づくようにします。※先に当たり判定の処理を追加するを設定してください。