RPGツクール2000/自作戦闘【サイトトップへ戻る】
ピクチャー弾丸を飛ばす
■敵も弾丸発射
(更新:2020/07/05)
敵キャラも5マス先まで弾丸を飛ばすように設定します。
■システムの確認
|
左のような4×4ピクセルの敵の弾丸画像を用意してください。
左の画像を使う場合は、
画像の上で右クリック→名前を付けて画像を保存を選択して、
デスクトップなどに保存してインポートしてください。 |
敵は主人公が5マス以内に近づくと弾丸を発射します。
※6通りの5マス以内の発射設定を紹介します。
弾丸の射程は主人公と同じく5マスまでです。
敵の弾丸は一度弾丸を発射すると、2秒間は次の弾丸が発射できないようにします。
なお、発射間隔は0.4秒位まで短くする事ができますが、それ以上短くすると、
前に発射した弾丸の移動が終わる前に弾丸が消去し、次の弾丸が発射してしまいます。
またあまりに敵の発射間隔が短いと、敵の弾丸を避けながら主人公が攻撃する事が不可能になります。
敵の弾丸は、他の敵への当たり判定を設定しないので、他の敵に弾丸が当たっても弾丸は素通りします。
▲トップへ戻る▲
■監視イベントとの関係
敵も弾丸発射では、敵が弾丸を発射する時に、主人公がいるかどうかを調べてから弾丸を発射します。
そのため、敵も弾丸発射を設定すると、自動的に監視イベントが設定されます。
なお、普段は動かない敵キャラが主人公を見つけたら、
主人公に近づきながら攻撃していくような設定を行う場合は、先に敵の弾丸処理を設定した上で、
このページの下の方にある■見つけたら近寄るを設定してください。
▲トップへ戻る▲
■敵弾丸の当たり判定について
今回の当たり判定では、主人公と敵弾丸との画面位置によって、当たったかどうかを判断します。
主人公の中心から7ピクセル以内に敵の弾丸が入った時には、当たったと判断されます。
実際に7ピクセル以内なのかどうかを調べる時には、
まず主人公の画面位置と弾丸の画面位置との距離を算出します。
X位置の場合は…
◆変数の操作:[0011:敵弾:当たり確認X]代入,〜弾丸のX位置〜
◆変数の操作:[0011:敵弾:当たり確認X]減算,主人公の画面X |
と言った設定で算出します。
弾丸がX68、主人公がX64の場合は…
となり、X位置の両者の距離は「4」になります。
Y位置の場合は…
◆変数の操作:[0012:敵弾:当たり確認Y]代入,〜弾丸のY位置〜
◆変数の操作:[0012:敵弾:当たり確認Y]減算,主人公の画面Y
◆変数の操作:[0012:敵弾:当たり確認Y]加算,8 |
と言った設定で算出します。
主人公の画面Yは主人公の足元の画面位置になるので、
それを主人公の胸の位置(主人公がいるマスの中心)にするために「加算8」を実行しています。
X位置、Y位置の距離が出ましたら、その距離を「8」で割ります。
8で割る事で、
当たり判定の範囲内(−7〜7)であるの場合は変数の値は「0」になり、
当たり判定の範囲外(−8以下or8以上)である場合は「0以外」になります。
そしてX位置、Y位置の変数が共に「0(当たり判定の範囲内)」である時に、
当たった時の処理(主人公のダメージ処理)を実行します。
実際の当たり判定の処理は以下のように設定します。
◆変数の操作:[0011:敵弾:当たり確認X]代入,〜弾丸のX位置〜
◆変数の操作:[0012:敵弾:当たり確認Y]代入,〜弾丸のY位置〜
◆変数の操作:[0011:敵弾:当たり確認X]減算,主人公の画面X
◆変数の操作:[0012:敵弾:当たり確認Y]減算,主人公の画面Y
◆変数の操作:[0012:敵弾:当たり確認Y]加算,8
◆変数の操作:[0011〜0012]除算,8
◆条件分岐:変数[0011:敵弾:当たり確認X]が0
◆条件分岐:変数[0012:敵弾:当たり確認Y]が0
◆〜主人公に当たった時の処理〜
◆
:分岐終了
◆
:分岐終了 |
▲トップへ戻る▲
■スイッチ・変数
スイッチと変数の番号と使用内容の一覧表です。
スイッチ |
番号 |
名前 |
使用内容 |
初使用ページ |
0001 |
システム起動 |
初期設定が終わったらON→弾丸処理実行。 |
基礎 |
|
0011 |
弾丸移動中01 |
ONの時には弾丸01は移動中。 |
基礎 |
0012 |
弾丸移動中02 |
ONの時には弾丸02は移動中。 |
基礎 |
0013 |
弾丸移動中03 |
ONの時には弾丸03は移動中。 |
基礎 |
|
0021 |
弾丸移動中03 |
ONの時には敵弾丸01は移動中。 |
当ページ |
0022 |
弾丸移動中03 |
ONの時には敵弾丸02は移動中。 |
当ページ |
|
0041 |
主人公に近づく:敵01 |
ONの時には敵01が主人公に近づきます。 |
当ページ |
0042 |
主人公に近づく:敵02 |
ONの時には敵02が主人公に近づきます。 |
当ページ |
変数 |
番号 |
名前 |
使用内容 |
初使用ページ |
0001 |
キー入力 |
決定キーが押されているかどうかを判断する時に使用。 |
基礎 |
0002 |
移動距離 |
ピクチャー弾丸が移動する距離(射程)を設定。 |
基礎 |
0003 |
X± |
向きに合わせて1回の処理で移動するXの移動量を設定。 |
基礎 |
0004 |
Y± |
向きに合わせて1回の処理で移動するYの移動量を設定。 |
基礎 |
0005 |
X座標 |
弾丸の位置のX座標を設定。 |
当たり判定 |
0006 |
Y座標 |
弾丸の位置のY座標を設定。 |
当たり判定 |
0007 |
ID |
弾丸の位置の地形IDやイベントIDを取得。 |
当たり判定 |
0008 |
1ページ目 |
敵キャラの1ページ目を呼び出す時に使用。 |
当たり判定 |
0009 |
最小敵イベントID |
マップ内で最も小さい敵イベントIDを設定。 |
当たり判定 |
|
0011 |
敵弾:当たり確認X |
主人公と敵弾丸が重なっているかを調べる時に使用。 |
当ページ |
0012 |
敵弾:当たり確認Y |
主人公と敵弾丸が重なっているかを調べる時に使用。 |
当ページ |
0013 |
敵弾:X±状態記憶 |
敵弾丸の移動方向を決める時に使用。 |
当ページ |
0014 |
敵弾:Y±状態記憶 |
敵弾丸の移動方向を決める時に使用。 |
当ページ |
|
0015 |
敵弾壁確認:位置X |
発射前の壁の確認で使用。 |
当ページ |
0016 |
敵弾壁確認:位置Y |
発射前の壁の確認で使用。 |
当ページ |
0017 |
敵弾壁確認:移動X |
発射前の壁の確認で使用。 |
当ページ |
0018 |
敵弾壁確認:移動Y |
発射前の壁の確認で使用。 |
当ページ |
0019 |
敵弾壁確認:移動量 |
発射前の壁の確認で使用。 |
当ページ |
|
0021 |
キーカウント |
弾丸が発射して、次の弾丸が発射するまでの間をカウント。 |
基礎 |
0022 |
無敵時間 |
主人公がダメージを受けた時の無敵時間を設定。-1以下=無敵。 |
当たり判定 |
|
0031 |
弾丸移動量01 |
発射時から1ずつ加算していき、
変数[0002:移動距離]以上の値になったら弾丸01を消去。 |
基礎 |
0032 |
弾丸移動量02 |
発射時から1ずつ加算していき、
変数[0002:移動距離]以上の値になったら弾丸02を消去。 |
基礎 |
0033 |
弾丸移動量03 |
発射時から1ずつ加算していき、
変数[0002:移動距離]以上の値になったら弾丸03を消去。 |
基礎 |
|
0041 |
弾丸01X |
弾丸01のX位置を記憶。 |
基礎 |
0042 |
弾丸02X |
弾丸02のX位置を記憶。 |
基礎 |
0043 |
弾丸03X |
弾丸03のX位置を記憶。 |
基礎 |
0051 |
弾丸01Y |
弾丸01のY位置を記憶。 |
基礎 |
0052 |
弾丸02Y |
弾丸02のY位置を記憶。 |
基礎 |
0053 |
弾丸03Y |
弾丸03のY位置を記憶。 |
基礎 |
|
0061 |
弾丸01X± |
弾丸01の1回のXの移動量を記憶。 |
基礎 |
0062 |
弾丸02X± |
弾丸02の1回のXの移動量を記憶。 |
基礎 |
0063 |
弾丸03X± |
弾丸03の1回のXの移動量を記憶。 |
基礎 |
0071 |
弾丸01Y± |
弾丸01の1回のYの移動量を記憶。 |
基礎 |
0072 |
弾丸02Y± |
弾丸02の1回のYの移動量を記憶。 |
基礎 |
0073 |
弾丸03Y± |
弾丸03の1回のYの移動量を記憶。 |
基礎 |
|
0081 |
弾丸01前のX座標 |
弾丸01の前のX座標を代入し、次の処理の時に使用。 |
当たり判定 |
0082 |
弾丸02前のX座標 |
弾丸02の前のX座標を代入し、次の処理の時に使用。 |
当たり判定 |
0083 |
弾丸03前のX座標 |
弾丸03の前のX座標を代入し、次の処理の時に使用。 |
当たり判定 |
0091 |
弾丸01前のY座標 |
弾丸01の前のY座標を代入し、次の処理の時に使用。 |
当たり判定 |
0092 |
弾丸02前のY座標 |
弾丸02の前のY座標を代入し、次の処理の時に使用。 |
当たり判定 |
0093 |
弾丸03前のY座標 |
弾丸03の前のY座標を代入し、次の処理の時に使用。 |
当たり判定 |
|
0101 |
敵ダメージ01 |
敵キャラ01のダメージ量を設定。10以上で敵キャラ01が消滅。 |
当たり判定 |
0102 |
敵ダメージ02 |
敵キャラ02のダメージ量を設定。10以上で敵キャラ01が消滅。 |
当たり判定 |
|
0161 |
XY |
主人公のマス情報を代入。 |
画面スクロール |
0162 |
前のXY |
変数0161番と比べて値が異なる場合は、移動したと判断。 |
画面スクロール |
0163 |
ずらす回数 |
画面スクロールに合わせてずらす回数を設定。 |
画面スクロール |
0164 |
ずらす量X |
画面スクロールに合わせて弾丸の表示位置をずらす値を設定。 |
画面スクロール |
0165 |
ずらす量Y |
画面スクロールに合わせて弾丸の表示位置をずらす値を設定。 |
画面スクロール |
0166 |
位置調整X |
画面スクロール時のマス座標の計算のずれを修正する時に使用。 |
画面スクロール |
0167 |
位置調整Y |
画面スクロール時のマス座標の計算のずれを修正する時に使用。 |
画面スクロール |
0168 |
主人公の画面位置 |
主人公の画面位置を出力。 |
画面スクロール |
0169 |
画面スクロールX+ |
横にスクロールしたピクセル数を設定。 |
画面スクロール |
0170 |
画面スクロールY+ |
縦にスクロールしたピクセル数を設定。 |
画面スクロール |
0171 |
マップサイズX |
マップの横のマス数を設定。 |
画面スクロール |
0172 |
マップサイズY |
マップの縦のマス数を設定。 |
画面スクロール |
|
0181 |
敵弾:発射カウント01 |
0以上の時に敵01の弾丸が発射可能になる。 |
当ページ |
0182 |
敵弾:発射カウント02 |
0以上の時に敵02の弾丸が発射可能になる。 |
当ページ |
0191 |
敵弾:移動量01 |
敵弾丸01の現在の移動量を記憶。 |
当ページ |
0192 |
敵弾:移動量02 |
敵弾丸02の現在の移動量を記憶。 |
当ページ |
0201 |
敵弾:両者の距離X01 |
主人公と敵01とのX座標の距離を算出。 |
当ページ |
0202 |
敵弾:両者の距離X02 |
主人公と敵02とのX座標の距離を算出。 |
当ページ |
0211 |
敵弾:両者の距離Y01 |
主人公と敵01とのY座標の距離を算出。 |
当ページ |
0212 |
敵弾:両者の距離Y02 |
主人公と敵02とのY座標の距離を算出。 |
当ページ |
0221 |
敵弾:位置01X |
敵弾丸01のX位置を記憶。 |
当ページ |
0222 |
敵弾:位置02X |
敵弾丸02のX位置を記憶。 |
当ページ |
0231 |
敵弾:位置01Y |
敵弾丸01のY位置を記憶。 |
当ページ |
0232 |
敵弾:位置02Y |
敵弾丸02のY位置を記憶。 |
当ページ |
0241 |
敵弾:移動01X± |
敵弾丸01の1回のXの移動量を記憶。 |
当ページ |
0242 |
敵弾:移動01Y± |
敵弾丸01の1回のYの移動量を記憶。 |
当ページ |
0243 |
敵弾:移動02X± |
敵弾丸02の1回のXの移動量を記憶。 |
当ページ |
0244 |
敵弾:移動02Y± |
敵弾丸02の1回のXの移動量を記憶。 |
当ページ |
【スイッチ・変数の一覧表を開く】
▲トップへ戻る▲
■初期設定イベントに追加設定
まずは初期設定イベントにイベントを追加します。
今回は敵キャラ2体分の弾丸処理を設定するので、敵の弾丸は2発分(ピクチャー2枚)を用意します。
■マップイベント「初期設定」
▼1ページ目
イベント出現条件:なし
イベント開始条件:自動的に始まる
◆ピクチャーの表示:1,dan(160,120)(透明度:100%)
◆ピクチャーの表示:2,dan(160,120)(透明度:100%)
◆ピクチャーの表示:3,dan(160,120)(透明度:100%)
◆ピクチャーの表示:4,teki_dan(160,120)(透明度:100%)<敵用の弾丸を表示する
◆ピクチャーの表示:5,teki_dan(160,120)(透明度:100%)
◆変数の操作:[0008:1ページ目]代入,1
◆変数の操作:[0009:最小敵イベントID]代入,3<必要ならば変える
◆変数の操作:[0101〜0102]代入,0
◆変数の操作:[0181〜0260]代入,0<敵弾丸処理で使用する値を初期化
◆スイッチの操作:[0001:システム起動]をONにする
◆
▼2ページ目
*追加・変更はありません。 |
▲トップへ戻る▲
■敵弾丸処理イベントの設定
敵の弾丸処理用のイベントは、マップイベント「初期設定」の2ページ目に設定してください。
※マップイベント「初期設定」の2ページ目に主人公の弾丸処理がある場合は、
主人公の弾丸処理と一緒に設定するか、または新しいマップイベントで設定してください。
なお、新しいマップイベントとして設定する場合は、このマップイベント「敵弾丸処理」のイベントIDは、
敵キャラのイベントIDよりも小さいイベントIDにしてください。
イベントID:0001:初期設定
イベントID:0002:敵キャラ01
イベントID:0003:敵キャラ02
イベントID:0004:敵弾丸処理 |
などとなった場合は…
イベントID:0001:初期設定
イベントID:0002:敵弾丸処理
イベントID:0003:敵キャラ01
イベントID:0004:敵キャラ02 |
の順番を並び替えてください。
【イベントIDを揃える手順を見る】
今回の設定例では新規マップイベントとして設定します。
並び替えによって敵の最小イベントIDが変わった時には、マップイベント「初期設定」の…
◆変数の操作:[0009:最小敵イベントID]代入,3 |
などの設定変更をお忘れなく!
下記設定例には「〜あとで設定〜」と言う部分があります。
この部分は「弾丸を発射する条件(攻撃範囲)」によって設定方法が変わります。
詳しくは■敵弾丸を発射するイベントを追加の中で説明するので、
取りあえず「〜あとで設定〜」と書かれた以外の所を先に設定してください。
敵弾丸02の設定は、敵弾丸01の設定をコピーした物を修正して設定します。
■マップイベント「敵弾丸処理」
イベント出現条件:スイッチ[0001:システム起動]がON
イベント開始条件:定期的に並列処理する
◆ラベルの設定:1番
◆変数の操作:[0181〜0200]加算,1<次に弾丸を発射する時間カウントと移動量を増やす
◆変数の操作:[0201〜0210]代入,主人公のX座標
◆変数の操作:[0211〜0220]代入,主人公のY座標
◆変数の操作:[0201:敵弾:両者の距離X01]減算,敵キャラ01のX座標
◆変数の操作:[0211:敵弾:両者の距離Y01]減算,敵キャラ01のY座標
◆変数の操作:[0202:敵弾:両者の距離X02]減算,敵キャラ02のX座標
◆変数の操作:[0212:敵弾:両者の距離Y02]減算,敵キャラ02のY座標
◆注釈:------------------------------------------------------------
: :弾丸発射
: :
◆条件分岐:変数[0101:敵ダメージ01]が10より小さい<まだ敵01が生きている時
◆条件分岐:変数[0181:敵弾:発射カウント01]が0以上<発射可能である時
◆〜あとで設定〜
◆
:分岐終了
◆ラベルの設定:10番
◆
:分岐終了
◆条件分岐:変数[0102:敵ダメージ02]が10より小さい<敵弾丸2の設定をコピー
◆条件分岐:変数[0182:敵弾:発射カウント02]が0以上
◆〜あとで設定〜
◆
:分岐終了
◆ラベルの設定:11番
◆
:分岐終了
◆注釈:------------------------------------------------------------
: :弾丸移動
: :
◆変数の操作:[0002:移動距離]代入,20<弾丸の射程(5マス)を設定
◆条件分岐:スイッチ[0021:敵弾丸移動中01]がON(オプション:ON)<敵弾丸1が移動中
◆条件分岐:変数[0191:敵弾:移動量01]がV[0002]以上<射程に達した時
◆スイッチの操作:[0021:敵弾丸移動中01]をOFFにする<弾丸消去
◆
:分岐終了
◆変数の操作:[0221:敵弾:位置01X]加算,変数[0241]の値<弾丸を移動
◆変数の操作:[0231:敵弾:位置01Y]加算,変数[0242]の値<弾丸を移動
◆ピクチャーの移動:4,(V[0221],V[0231]),0.0秒(透明度:0%)<弾丸の表示位置を更新
◆変数の操作:[0011:敵弾:当たり確認X]代入,変数[0221]の値<弾丸のX位置を設定
◆変数の操作:[0012:敵弾:当たり確認Y]代入,変数[0231]の値<弾丸のY位置を設定
◆変数の操作:[0011:敵弾:当たり確認X]減算,主人公の画面X<主人公のX位置を減算
◆変数の操作:[0012:敵弾:当たり確認Y]減算,主人公の画面Y<主人公のY位置を減算
◆変数の操作:[0012:敵弾:当たり確認Y]加算,8<Y位置を主人公の中心に修正
◆変数の操作:[0011〜0012]除算,8<主人公と弾丸との距離が-7〜7以内か調べる。
◆条件分岐:変数[0011:敵弾:当たり確認X]が0<主人公と弾丸とのX距離が-7〜7以内
◆条件分岐:変数[0012:敵弾:当たり確認Y]が0<主人公と弾丸とのY距離が-7〜7以内
◆条件分岐:変数[0022:無敵時間]が0以上<現在無敵ではない時
◆キャラクターのフラッシュ:主人公,0.5秒(R31,G00,B00,V31)
◆効果音の演奏:打撃1
◆HPの増減:アレックスのHPを1減らす
◆変数の操作:[0022:無敵時間]代入,-30
◆スイッチの操作:[0021:敵弾丸移動中01]をOFFにする<弾丸消去
◆
:分岐終了
◆
:分岐終了
◆
:分岐終了
◆
:それ以外の場合<スイッチ[0021:敵弾丸移動中01]がOFF(敵弾丸1が移動してない)
◆ピクチャーの移動:4,(160,120),0.0秒(透明度:100%)<弾丸を消す
◆
:分岐終了
◆条件分岐:スイッチ[0022:敵弾丸移動中02]がON(オプション:ON)<敵弾丸1の設定をコピー
◆条件分岐:変数[0192:敵弾:移動量02]がV[0002]以上
◆スイッチの操作:[0022:敵弾丸移動中02]をOFFにする
◆
:分岐終了
◆変数の操作:[0222:敵弾:位置02X]加算,変数[0243]の値
◆変数の操作:[0232:敵弾:位置02Y]加算,変数[0244]の値
◆ピクチャーの移動:5,(V[0222],V[0232]),0.0秒(透明度:0%)
◆変数の操作:[0011:敵弾:当たり確認X]代入,変数[0222]の値
◆変数の操作:[0012:敵弾:当たり確認Y]代入,変数[0232]の値
◆変数の操作:[0011:敵弾:当たり確認X]減算,主人公の画面X
◆変数の操作:[0012:敵弾:当たり確認Y]減算,主人公の画面Y
◆変数の操作:[0012:敵弾:当たり確認Y]加算,8
◆変数の操作:[0011〜0012]除算,8
◆条件分岐:変数[0011:敵弾:当たり確認X]が0
◆条件分岐:変数[0012:敵弾:当たり確認Y]が0
◆条件分岐:変数[0022:無敵時間]が0以上
◆キャラクターのフラッシュ:主人公,0.5秒(R31,G00,B00,V31)
◆効果音の演奏:打撃1
◆HPの増減:アレックスのHPを1減らす
◆変数の操作:[0022:無敵時間]代入,-30
◆スイッチの操作:[0022:敵弾丸移動中02]をOFFにする
◆
:分岐終了
◆
:分岐終了
◆
:分岐終了
◆
:それ以外の場合
◆ピクチャーの移動:5,(160,120),0.0秒(透明度:100%)
◆
:分岐終了
◆ウェイト:0.0秒
◆指定ラベルへ飛ぶ:1番
◆ |
▲トップへ戻る▲
■敵弾丸を発射するイベントを追加
「〜あとで設定〜」としていた部分に、弾丸を発射するイベントを追加設定します。
追加するイベントは、弾丸を発射する条件(攻撃範囲)によって設定方法が異なります。
▼画像をクリックするとその設定例が書いてある所にジャンプします。
|
敵が向いている方向のみ |
4方向 |
直線状 |
|
|
四角 |
|
|
扇形 |
|
|
■正面に真っ直ぐと発射
敵が向いている方向の直線状(5マス以内)に主人公がいる場合は、弾丸を発射します。
▼攻撃範囲(下向きの場合)
注釈:弾丸発射の所は以下のように設定してください。
◆注釈:------------------------------------------------------------
: :弾丸発射
: :
◆条件分岐:変数[0101:敵ダメージ01]が10より小さい
◆条件分岐:変数[0181:敵弾:発射カウント01]が0以上
◆変数の操作:[0241〜0242]代入,0
◆条件分岐:敵キャラ01が左を向いている
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が0以外<横の直線状ではない時
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆条件分岐:変数[0201:敵弾:両者の距離X01]が1以上<敵の後ろに主人公がいる時
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆条件分岐:変数[0201:敵弾:両者の距離X01]が-6以下<主人公が射程外にいる時
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆変数の操作:[0241:敵弾:移動01X±]代入,-4
◆
:分岐終了
◆条件分岐:敵キャラ01が右を向いている
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が0以外<横の直線状ではない時
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆条件分岐:変数[0201:敵弾:両者の距離X01]が-1以下<敵の後ろに主人公がいる時
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆条件分岐:変数[0201:敵弾:両者の距離X01]が6以上<主人公が射程外にいる時
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆変数の操作:[0241:敵弾:移動01X±]代入,4
◆
:分岐終了
◆条件分岐:敵キャラ01が上を向いている
◆条件分岐:変数[0201:敵弾:両者の距離X01]が0以外<縦の直線状ではない時
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が1以上<敵の後ろに主人公がいる時
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が-6以下<主人公が射程外にいる時
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆変数の操作:[0242:敵弾:移動01Y±]代入,-4
◆
:分岐終了
◆条件分岐:敵キャラ01が下を向いている
◆条件分岐:変数[0201:敵弾:両者の距離X01]が0以外<縦の直線状ではない時
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が-1以下<敵の後ろに主人公がいる時
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が6以上<主人公が射程外にいる時
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆変数の操作:[0242:敵弾:移動01Y±]代入,4
◆
:分岐終了
◆注釈:------------------------------
: :▼弾丸発射準備
: :
◆変数の操作:[0191:敵弾:移動量01]代入,0<移動量を初期化
◆変数の操作:[0221:敵弾:位置01X]代入,敵キャラ01の画面X<弾丸位置を設定
◆変数の操作:[0231:敵弾:位置01Y]代入,敵キャラ01の画面Y<弾丸位置を設定
◆変数の操作:[0231:敵弾:位置01Y]減算,8<Y位置をマスの中心に移動
◆注釈:------------------------------
: :▼発射!
: :
◆変数の操作:[0181:敵弾:発射カウント01]代入,-120<弾丸発射を止める時間を設定
◆スイッチの操作:[0021:敵弾丸移動中01]をONにする<敵弾丸01の移動開始
◆効果音の演奏:冷気2<敵弾丸の発射効果音
◆
:分岐終了
◆ラベルの設定:10番
◆
:分岐終了
◆条件分岐:変数[0102:敵ダメージ02]が10より小さい
◆条件分岐:変数[0182:敵弾:発射カウント02]が0以上
◆変数の操作:[0243〜0244]代入,0<敵弾丸01の設定をコピーして修正
◆条件分岐:敵キャラ02が左を向いている
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が0以外
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆条件分岐:変数[0202:敵弾:両者の距離X02]が1以上
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆条件分岐:変数[0202:敵弾:両者の距離X02]が-6以下
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆変数の操作:[0243:敵弾:移動02X±]代入,-4
◆
:分岐終了
◆条件分岐:敵キャラ02が右を向いている
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が0以外
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆条件分岐:変数[0202:敵弾:両者の距離X02]が-1以下
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆条件分岐:変数[0202:敵弾:両者の距離X02]が6以上
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆変数の操作:[0243:敵弾:移動02X±]代入,4
◆
:分岐終了
◆条件分岐:敵キャラ02が上を向いている
◆条件分岐:変数[0202:敵弾:両者の距離X02]が0以外
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が1以上
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が-6以下
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆変数の操作:[0244:敵弾:移動02Y±]代入,-4
◆
:分岐終了
◆条件分岐:敵キャラ02が下を向いている
◆条件分岐:変数[0202:敵弾:両者の距離X02]が0以外
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が-1以下
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が6以上
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆変数の操作:[0244:敵弾:移動02Y±]代入,4
◆
:分岐終了
◆注釈:------------------------------
: :▼弾丸発射準備
: :
◆変数の操作:[0192:敵弾:移動量02]代入,0
◆変数の操作:[0222:敵弾:位置02X]代入,敵キャラ02の画面X
◆変数の操作:[0232:敵弾:位置02Y]代入,敵キャラ02の画面Y
◆変数の操作:[0232:敵弾:位置02Y]減算,8
◆注釈:------------------------------
: :▼発射!
: :
◆変数の操作:[0182:敵弾:発射カウント02]代入,-120
◆スイッチの操作:[0022:敵弾丸移動中02]をONにする
◆効果音の演奏:冷気2
◆
:分岐終了
◆ラベルの設定:11番
◆
:分岐終了 |
▲トップへ戻る▲ ▼壁の当たり判定を追加するまでジャンプ▼
■4方向に真っ直ぐと発射
直線状(5マス以内)に主人公がいる場合は、主人公の方を向いて弾丸を発射します。
▼攻撃範囲
注釈:弾丸発射の所は以下のように設定してください。
◆注釈:------------------------------------------------------------
: :弾丸発射
: :
◆条件分岐:変数[0101:敵ダメージ01]が10より小さい
◆条件分岐:変数[0181:敵弾:発射カウント01]が0以上
◆変数の操作:[0241〜0242]代入,0
◆条件分岐:変数[0201:敵弾:両者の距離X01]が0以外(オプション:ON)
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が0以外
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆
:それ以外の場合<変数[0201:敵弾:両者の距離X01]が0の時
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が-6以下
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が6以上
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が-1以下
◆変数の操作:[0242:敵弾:移動01Y±]代入,-4
◆
:分岐終了
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が1以上
◆変数の操作:[0242:敵弾:移動01Y±]代入,4
◆
:分岐終了
◆
:分岐終了
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が0
◆条件分岐:変数[0201:敵弾:両者の距離X01]が-6以下
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆条件分岐:変数[0201:敵弾:両者の距離X01]が6以上
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆条件分岐:変数[0201:敵弾:両者の距離X01]が-1以下
◆変数の操作:[0241:敵弾:移動01X±]代入,-4
◆
:分岐終了
◆条件分岐:変数[0201:敵弾:両者の距離X01]が1以上
◆変数の操作:[0241:敵弾:移動01X±]代入,4
◆
:分岐終了
◆
:分岐終了
◆注釈:------------------------------
: :▼弾丸発射準備
: :
◆変数の操作:[0191:敵弾:移動量01]代入,0<移動量を初期化
◆変数の操作:[0221:敵弾:位置01X]代入,敵キャラ01の画面X<弾丸位置を設定
◆変数の操作:[0231:敵弾:位置01Y]代入,敵キャラ01の画面Y<弾丸位置を設定
◆変数の操作:[0231:敵弾:位置01Y]減算,8<Y位置をマスの中心に移動
◆注釈:------------------------------
: :▼発射!
: :
◆変数の操作:[0181:敵弾:発射カウント01]代入,-120<弾丸発射を止める時間を設定
◆キャラクターの動作指定:敵キャラ01,主人公の方を向く
◆スイッチの操作:[0021:敵弾丸移動中01]をONにする<敵弾丸01の移動開始
◆効果音の演奏:冷気2
◆
:分岐終了
◆ラベルの設定:10番
◆
:分岐終了
◆条件分岐:変数[0102:敵ダメージ02]が10より小さい
◆条件分岐:変数[0182:敵弾:発射カウント02]が0以上
◆変数の操作:[0243〜0244]代入,0<敵弾丸01の設定をコピーして修正
◆条件分岐:変数[0202:敵弾:両者の距離X02]が0以外(オプション:ON)
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が0以外
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆
:それ以外の場合
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が-6以下
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が6以上
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が-1以下
◆変数の操作:[0244:敵弾:移動02Y±]代入,-4
◆
:分岐終了
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が1以上
◆変数の操作:[0244:敵弾:移動02Y±]代入,4
◆
:分岐終了
◆
:分岐終了
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が0
◆条件分岐:変数[0202:敵弾:両者の距離X02]が-6以下
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆条件分岐:変数[0202:敵弾:両者の距離X02]が6以上
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆条件分岐:変数[0202:敵弾:両者の距離X02]が-1以下
◆変数の操作:[0243:敵弾:移動02X±]代入,-4
◆
:分岐終了
◆条件分岐:変数[0202:敵弾:両者の距離X02]が1以上
◆変数の操作:[0243:敵弾:移動02X±]代入,4
◆
:分岐終了
◆
:分岐終了
◆注釈:------------------------------
: :▼弾丸発射準備
: :
◆変数の操作:[0192:敵弾:移動量02]代入,0
◆変数の操作:[0222:敵弾:位置02X]代入,敵キャラ02の画面X
◆変数の操作:[0232:敵弾:位置02Y]代入,敵キャラ02の画面Y
◆変数の操作:[0232:敵弾:位置02Y]減算,8
◆注釈:------------------------------
: :▼発射!
: :
◆変数の操作:[0182:敵弾:発射カウント02]代入,-120
◆キャラクターの動作指定:敵キャラ02,主人公の方を向く
◆スイッチの操作:[0022:敵弾丸移動中02]をONにする
◆効果音の演奏:冷気2
◆
:分岐終了
◆ラベルの設定:11番
◆
:分岐終了 |
▲トップへ戻る▲ ▼壁の当たり判定を追加するまでジャンプ▼
■正面5マス以内&左右2マス以内で発射
正面5マス以内&左右2マス以内に主人公がいる場合は、弾丸を発射します。
▼攻撃範囲(下向きの場合)
設定の中に…
◆変数の操作:[0201:敵弾:両者の距離X01]除算,6
◆変数の操作:[0211:敵弾:両者の距離Y01]除算,3 |
などの設定があります。
この設定は弾丸を発射するマス数を決める処理になります。
「除算6」の場合は…
両者の距離が5マス以内→弾丸を発射する
|
両者の距離が5マス以上→弾丸を発射しない
|
|
になります。
弾丸の1回の移動量を決めるイベント処理に関しては、別ページにて解説します。
【弾丸の1回の移動量を決める処理のページを開く】
注釈:弾丸発射の所は以下のように設定してください。
◆注釈:------------------------------------------------------------
: :弾丸発射
: :
◆条件分岐:変数[0101:敵ダメージ01]が10より小さい
◆条件分岐:変数[0181:敵弾:発射カウント01]が0以上
◆条件分岐:敵キャラ01が左を向いている
◆変数の操作:[0201:敵弾:両者の距離X01]除算,6
◆変数の操作:[0211:敵弾:両者の距離Y01]除算,3
◆
:分岐終了
◆条件分岐:敵キャラ01が右を向いている
◆変数の操作:[0201:敵弾:両者の距離X01]除算,6
◆変数の操作:[0211:敵弾:両者の距離Y01]除算,3
◆
:分岐終了
◆条件分岐:敵キャラ01が上を向いている
◆変数の操作:[0201:敵弾:両者の距離X01]除算,3
◆変数の操作:[0211:敵弾:両者の距離Y01]除算,6
◆
:分岐終了
◆条件分岐:敵キャラ01が下を向いている
◆変数の操作:[0201:敵弾:両者の距離X01]除算,3
◆変数の操作:[0211:敵弾:両者の距離Y01]除算,6
◆
:分岐終了
◆条件分岐:変数[0201:敵弾:両者の距離X01]が0以外
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が0以外
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆注釈:------------------------------
: :▼移動方向の設定準備
: :
◆変数の操作:[0003:X±]代入,主人公のX座標
◆変数の操作:[0004:Y±]代入,主人公のY座標
◆変数の操作:[0003:X±]減算,敵キャラ01のX座標
◆変数の操作:[0004:Y±]減算,敵キャラ01のY座標
◆変数の操作:[0013〜0014]代入,1
◆条件分岐:変数[0003:X±]が-1以下
◆変数の操作:[0003:X±]乗算,-1
◆変数の操作:[0013:敵弾:Xの±状態記憶]代入,-1
◆
:分岐終了
◆条件分岐:変数[0004:Y±]が-1以下
◆変数の操作:[0004:Y±]乗算,-1
◆変数の操作:[0014:敵弾:Yの±状態記憶]代入,-1
◆
:分岐終了
◆注釈:------------------------------
: :▼移動方向を設定
: :
◆条件分岐:変数[0003:X±]がV[0004]以上(オプション:ON)
◆変数の操作:[0004:Y±]乗算,8
◆変数の操作:[0004:Y±]除算,変数[0003]の値
◆変数の操作:[0004:Y±]加算,1
◆変数の操作:[0004:Y±]除算,2
◆変数の操作:[0003:X±]代入,4
◆
:それ以外の場合
◆変数の操作:[0003:X±]乗算,8
◆変数の操作:[0003:X±]除算,変数[0004]の値
◆変数の操作:[0003:X±]加算,1
◆変数の操作:[0003:X±]除算,2
◆変数の操作:[0004:Y±]代入,4
◆
:分岐終了
◆変数の操作:[0003:X±]乗算,変数[0013]の値
◆変数の操作:[0004:Y±]乗算,変数[0014]の値
◆注釈:------------------------------
: :▼弾丸発射準備
: :
◆変数の操作:[0191:敵弾:移動量01]代入,0<移動量を初期化 ◆変数の操作:[0221:敵弾:位置01X]代入,敵キャラ01の画面X<弾丸位置を設定
◆変数の操作:[0231:敵弾:位置01Y]代入,敵キャラ01の画面Y<弾丸位置を設定
◆変数の操作:[0231:敵弾:位置01Y]減算,8<Y位置をマスの中心に移動 ◆変数の操作:[0241:敵弾:移動01X±]代入,変数[0003]の値<移動ピクセル数を設定 ◆変数の操作:[0242:敵弾:移動01Y±]代入,変数[0004]の値<移動ピクセル数を設定
◆注釈:------------------------------
: :▼発射!
: :
◆変数の操作:[0181:敵弾:発射カウント01]代入,-120<弾丸発射を止める時間を設定
◆スイッチの操作:[0021:敵弾丸移動中01]をONにする<敵弾丸01の移動開始
◆効果音の演奏:冷気2<敵弾丸の発射効果音
◆
:分岐終了
◆ラベルの設定:10番
◆
:分岐終了
◆条件分岐:変数[0102:敵ダメージ02]が10より小さい
◆条件分岐:変数[0182:敵弾:発射カウント02]が0以上
◆条件分岐:敵キャラ02が左を向いている<敵弾丸01の設定をコピーして修正
◆変数の操作:[0202:敵弾:両者の距離X02]除算,6
◆変数の操作:[0212:敵弾:両者の距離Y02]除算,3
◆
:分岐終了
◆条件分岐:敵キャラ02が右を向いている
◆変数の操作:[0202:敵弾:両者の距離X02]除算,6
◆変数の操作:[0212:敵弾:両者の距離Y02]除算,3
◆
:分岐終了
◆条件分岐:敵キャラ02が上を向いている
◆変数の操作:[0202:敵弾:両者の距離X02]除算,3
◆変数の操作:[0212:敵弾:両者の距離Y02]除算,6
◆
:分岐終了
◆条件分岐:敵キャラ02が下を向いている
◆変数の操作:[0202:敵弾:両者の距離X02]除算,3
◆変数の操作:[0212:敵弾:両者の距離Y02]除算,6
◆
:分岐終了
◆条件分岐:変数[0202:敵弾:両者の距離X02]が0以外
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆条件分岐:変数[0202:敵弾:両者の距離X02]が0以外
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆注釈:------------------------------
: :▼移動方向の設定準備
: :
◆変数の操作:[0003:X±]代入,主人公のX座標
◆変数の操作:[0004:Y±]代入,主人公のY座標
◆変数の操作:[0003:X±]減算,敵キャラ02のX座標
◆変数の操作:[0004:Y±]減算,敵キャラ02のY座標
◆変数の操作:[0013〜0014]代入,1
◆条件分岐:変数[0003:X±]が-1以下
◆変数の操作:[0003:X±]乗算,-1
◆変数の操作:[0013:敵弾:Xの±状態記憶]代入,-1
◆
:分岐終了
◆条件分岐:変数[0004:Y±]が-1以下
◆変数の操作:[0004:Y±]乗算,-1
◆変数の操作:[0014:敵弾:Yの±状態記憶]代入,-1
◆
:分岐終了
◆注釈:------------------------------
: :▼移動方向を設定
: :
◆条件分岐:変数[0003:X±]がV[0004]以上(オプション:ON)
◆変数の操作:[0004:Y±]乗算,8
◆変数の操作:[0004:Y±]除算,変数[0003]の値
◆変数の操作:[0004:Y±]加算,1
◆変数の操作:[0004:Y±]除算,2
◆変数の操作:[0003:X±]代入,4
◆
:それ以外の場合
◆変数の操作:[0003:X±]乗算,8
◆変数の操作:[0003:X±]除算,変数[0004]の値
◆変数の操作:[0003:X±]加算,1
◆変数の操作:[0003:X±]除算,2
◆変数の操作:[0004:Y±]代入,4
◆
:分岐終了
◆変数の操作:[0003:X±]乗算,変数[0013]の値
◆変数の操作:[0004:Y±]乗算,変数[0014]の値
◆注釈:------------------------------
: :▼弾丸発射準備
: :
◆変数の操作:[0192:敵弾:移動量02]代入,0
◆変数の操作:[0222:敵弾:位置02X]代入,敵キャラ02の画面X
◆変数の操作:[0232:敵弾:位置02Y]代入,敵キャラ02の画面Y
◆変数の操作:[0232:敵弾:位置02Y]減算,8
◆変数の操作:[0243:敵弾:移動02X±]代入,変数[0003]の値
◆変数の操作:[0244:敵弾:移動02Y±]代入,変数[0004]の値
◆注釈:------------------------------
: :▼発射!
: :
◆変数の操作:[0182:敵弾:発射カウント02]代入,-120
◆スイッチの操作:[0022:敵弾丸移動中02]をONにする
◆効果音の演奏:冷気2
◆
:分岐終了
◆ラベルの設定:11番
◆
:分岐終了 |
▲トップへ戻る▲ ▼壁の当たり判定を追加するまでジャンプ▼
■4方向正面5マス以内&左右2マス以内で発射
4方向正面5マス以内&左右2マス以内に主人公がいる場合は、
主人公の方を向いて弾丸を発射します。
▼攻撃範囲
設定の中に…
◆変数の操作:[0201:敵弾:両者の距離X01]除算,6
◆変数の操作:[0211:敵弾:両者の距離Y01]除算,3 |
などの設定があります。
この設定は弾丸を発射するマス数を決める処理になります。
「除算6」の場合は…
両者の距離が5マス以内→弾丸を発射する |
両者の距離が5マス以上→弾丸を発射しない |
|
になります。
弾丸の1回の移動量を決めるイベント処理に関しては、別ページにて解説します。
【弾丸の1回の移動量を決める処理のページを開く】
注釈:弾丸発射の所は以下のように設定してください。
◆注釈:------------------------------------------------------------
: :弾丸発射
: :
◆条件分岐:変数[0101:敵ダメージ01]が10より小さい
◆条件分岐:変数[0181:敵弾:発射カウント01]が0以上
◆変数の操作:[0005:X座標]代入,変数[0201]の値
◆変数の操作:[0006:Y座標]代入,変数[0211]の値
◆変数の操作:[0005:X座標]除算,6
◆変数の操作:[0006:Y座標]除算,3
◆条件分岐:変数[0005:X座標]が0<主人公がX座標で射程内の時
◆条件分岐:変数[0006:Y座標]が0<主人公がY座標で射程内の時
◆指定ラベルへ飛ぶ:20番
◆
:分岐終了
◆
:分岐終了
◆変数の操作:[0201:敵弾:両者の距離X01]除算,3
◆変数の操作:[0211:敵弾:両者の距離Y01]除算,6
◆条件分岐:変数[0201:敵弾:両者の距離X01]が0以外<主人公がX座標で射程外の時
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が0以外<主人公がY座標で射程外の時
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆ラベルの設定:20番
◆注釈:------------------------------
: :▼移動方向の設定準備
: :
◆変数の操作:[0003:X±]代入,主人公のX座標
◆変数の操作:[0004:Y±]代入,主人公のY座標
◆変数の操作:[0003:X±]減算,敵キャラ01のX座標
◆変数の操作:[0004:Y±]減算,敵キャラ01のY座標
◆変数の操作:[0013〜0014]代入,1
◆条件分岐:変数[0003:X±]が-1以下<X座標の距離がマイナス値の時
◆変数の操作:[0003:X±]乗算,-1
◆変数の操作:[0013:敵弾:Xの±状態記憶]代入,-1
◆
:分岐終了
◆条件分岐:変数[0004:Y±]が-1以下<Y座標の距離がマイナス値の時
◆変数の操作:[0004:Y±]乗算,-1
◆変数の操作:[0014:敵弾:Yの±状態記憶]代入,-1
◆
:分岐終了
◆注釈:------------------------------
: :▼移動方向を設定
: :
◆条件分岐:変数[0003:X±]がV[0004]以上(オプション:ON)<X座標の方が大きい時、または同値
◆変数の操作:[0004:Y±]乗算,8
◆変数の操作:[0004:Y±]除算,変数[0003]の値
◆変数の操作:[0004:Y±]加算,1
◆変数の操作:[0004:Y±]除算,2
◆変数の操作:[0003:X±]代入,4
◆
:それ以外の場合<X座標の方が小さい時
◆変数の操作:[0003:X±]乗算,8
◆変数の操作:[0003:X±]除算,変数[0004]の値
◆変数の操作:[0003:X±]加算,1
◆変数の操作:[0003:X±]除算,2
◆変数の操作:[0004:Y±]代入,4
◆
:分岐終了
◆変数の操作:[0003:X±]乗算,変数[0013]の値<マイナス値だった場合はマイナス値にする
◆変数の操作:[0004:Y±]乗算,変数[0014]の値<マイナス値だった場合はマイナス値にする
◆注釈:------------------------------
: :▼弾丸発射準備
: :
◆変数の操作:[0191:敵弾:移動量01]代入,0<移動量を初期化
◆変数の操作:[0221:敵弾:位置01X]代入,敵キャラ01の画面X<弾丸位置を設定
◆変数の操作:[0231:敵弾:位置01Y]代入,敵キャラ01の画面Y<弾丸位置を設定
◆変数の操作:[0231:敵弾:位置01Y]減算,8<Y位置をマスの中心に移動
◆変数の操作:[0241:敵弾:移動01X±]代入,変数[0003]の値<移動ピクセル数を設定
◆変数の操作:[0242:敵弾:移動01Y±]代入,変数[0004]の値<移動ピクセル数を設定
◆注釈:------------------------------
: :▼発射!
: :
◆変数の操作:[0181:敵弾:発射カウント01]代入,-120<弾丸発射を止める時間を設定
◆キャラクターの動作指定:敵キャラ01,主人公の方を向く
◆スイッチの操作:[0021:敵弾丸移動中01]をONにする<敵弾丸01の移動開始
◆効果音の演奏:冷気2<敵弾丸の発射効果音
◆
:分岐終了
◆ラベルの設定:10番
◆
:分岐終了
◆条件分岐:変数[0102:敵ダメージ02]が10より小さい
◆条件分岐:変数[0182:敵弾:発射カウント02]が0以上
◆変数の操作:[0005:X座標]代入,変数[0202]の値
◆変数の操作:[0006:Y座標]代入,変数[0212]の値
◆変数の操作:[0005:X座標]除算,6
◆変数の操作:[0006:Y座標]除算,3
◆条件分岐:変数[0005:X座標]が0
◆条件分岐:変数[0006:Y座標]が0
◆指定ラベルへ飛ぶ:21番
◆
:分岐終了
◆
:分岐終了
◆変数の操作:[0202:敵弾:両者の距離X02]除算,3
◆変数の操作:[0212:敵弾:両者の距離Y02]除算,6
◆条件分岐:変数[0202:敵弾:両者の距離X02]が0以外
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が0以外
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆ラベルの設定:21番
◆注釈:------------------------------
: :▼移動方向の設定準備
: :
◆変数の操作:[0003:X±]代入,主人公のX座標
◆変数の操作:[0004:Y±]代入,主人公のY座標
◆変数の操作:[0003:X±]減算,敵キャラ02のX座標
◆変数の操作:[0004:Y±]減算,敵キャラ02のY座標
◆変数の操作:[0013〜0014]代入,1
◆条件分岐:変数[0003:X±]が-1以下
◆変数の操作:[0003:X±]乗算,-1
◆変数の操作:[0013:敵弾:Xの±状態記憶]代入,-1
◆
:分岐終了
◆条件分岐:変数[0004:Y±]が-1以下
◆変数の操作:[0004:Y±]乗算,-1
◆変数の操作:[0014:敵弾:Yの±状態記憶]代入,-1
◆
:分岐終了
◆注釈:------------------------------
: :▼移動方向を設定
: :
◆条件分岐:変数[0003:X±]がV[0004]以上(オプション:ON)
◆変数の操作:[0004:Y±]乗算,8
◆変数の操作:[0004:Y±]除算,変数[0003]の値
◆変数の操作:[0004:Y±]加算,1
◆変数の操作:[0004:Y±]除算,2
◆変数の操作:[0003:X±]代入,4
◆
:それ以外の場合
◆変数の操作:[0003:X±]乗算,8
◆変数の操作:[0003:X±]除算,変数[0004]の値
◆変数の操作:[0003:X±]加算,1
◆変数の操作:[0003:X±]除算,2
◆変数の操作:[0004:Y±]代入,4
◆
:分岐終了
◆変数の操作:[0003:X±]乗算,変数[0013]の値
◆変数の操作:[0004:Y±]乗算,変数[0014]の値
◆注釈:------------------------------
: :▼弾丸発射準備
: :
◆変数の操作:[0192:敵弾:移動量02]代入,0
◆変数の操作:[0222:敵弾:位置02X]代入,敵キャラ02の画面X
◆変数の操作:[0232:敵弾:位置02Y]代入,敵キャラ02の画面Y
◆変数の操作:[0232:敵弾:位置02Y]減算,8
◆変数の操作:[0243:敵弾:移動02X±]代入,変数[0003]の値
◆変数の操作:[0244:敵弾:移動02Y±]代入,変数[0004]の値
◆注釈:------------------------------
: :▼発射!
: :
◆変数の操作:[0182:敵弾:発射カウント02]代入,-120
◆キャラクターの動作指定:敵キャラ02,主人公の方を向く
◆スイッチの操作:[0022:敵弾丸移動中02]をONにする
◆効果音の演奏:冷気2
◆
:分岐終了
◆ラベルの設定:11番
◆
:分岐終了 |
▲トップへ戻る▲ ▼壁の当たり判定を追加するまでジャンプ▼
■扇形に正面5マス以内で発射
扇形に正面5マス以内に主人公がいる場合は、弾丸を発射します。
▼攻撃範囲(下向きの場合)
弾丸の1回の移動量を決めるイベント処理に関しては、別ページにて解説します。
【弾丸の1回の移動量を決める処理のページを開く】
注釈:弾丸発射の所は以下のように設定してください。
◆注釈:------------------------------------------------------------
: :弾丸発射
: :
◆条件分岐:変数[0101:敵ダメージ01]が10より小さい
◆条件分岐:変数[0181:敵弾:発射カウント01]が0以上
◆条件分岐:敵キャラ01が左を向いている
◆条件分岐:変数[0201:敵弾:両者の距離X01]が1以上
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆条件分岐:変数[0201:敵弾:両者の距離X01]が-6以下
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆変数の操作:[0201:敵弾:両者の距離X01]乗算,-1
◆変数の操作:[0201:敵弾:両者の距離X01]加算,1
◆変数の操作:[0211:敵弾:両者の距離Y01]除算,変数[0201]の値
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が0以外
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆
:分岐終了
◆条件分岐:敵キャラ01が右を向いている
◆条件分岐:変数[0201:敵弾:両者の距離X01]が-1以下
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆条件分岐:変数[0201:敵弾:両者の距離X01]が6以上
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆変数の操作:[0201:敵弾:両者の距離X01]加算,1
◆変数の操作:[0211:敵弾:両者の距離Y01]除算,変数[0201]の値
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が0以外
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆
:分岐終了
◆条件分岐:敵キャラ01が上を向いている
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が1以上
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が-6以下
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆変数の操作:[0211:敵弾:両者の距離Y01]乗算,-1
◆変数の操作:[0211:敵弾:両者の距離Y01]加算,1
◆変数の操作:[0201:敵弾:両者の距離X01]除算,変数[0211]の値
◆条件分岐:変数[0201:敵弾:両者の距離X01]が0以外
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆
:分岐終了
◆条件分岐:敵キャラ01が下を向いている
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が-1以下
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が6以上
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆変数の操作:[0211:敵弾:両者の距離Y01]加算,1
◆変数の操作:[0201:敵弾:両者の距離X01]除算,変数[0211]の値
◆条件分岐:変数[0201:敵弾:両者の距離X01]が0以外
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆
:分岐終了
◆注釈:------------------------------
: :▼移動方向の設定準備
: :
◆変数の操作:[0003:X±]代入,主人公のX座標
◆変数の操作:[0004:Y±]代入,主人公のY座標
◆変数の操作:[0003:X±]減算,敵キャラ01のX座標
◆変数の操作:[0004:Y±]減算,敵キャラ01のY座標
◆変数の操作:[0013〜0014]代入,1
◆条件分岐:変数[0003:X±]が-1以下<X座標の距離がマイナス値の時
◆変数の操作:[0003:X±]乗算,-1
◆変数の操作:[0013:敵弾:Xの±状態記憶]代入,-1
◆
:分岐終了
◆条件分岐:変数[0004:Y±]が-1以下<Y座標の距離がマイナス値の時
◆変数の操作:[0004:Y±]乗算,-1
◆変数の操作:[0014:敵弾:Yの±状態記憶]代入,-1
◆
:分岐終了
◆注釈:------------------------------
: :▼移動方向を設定
: :
◆条件分岐:変数[0003:X±]がV[0004]以上(オプション:ON)<X座標の方が大きい時、または同値
◆変数の操作:[0004:Y±]乗算,8
◆変数の操作:[0004:Y±]除算,変数[0003]の値
◆変数の操作:[0004:Y±]加算,1
◆変数の操作:[0004:Y±]除算,2
◆変数の操作:[0003:X±]代入,4
◆
:それ以外の場合<X座標の方が小さい時
◆変数の操作:[0003:X±]乗算,8
◆変数の操作:[0003:X±]除算,変数[0004]の値
◆変数の操作:[0003:X±]加算,1
◆変数の操作:[0003:X±]除算,2
◆変数の操作:[0004:Y±]代入,4
◆
:分岐終了
◆変数の操作:[0003:X±]乗算,変数[0013]の値<マイナス値だった場合はマイナス値にする
◆変数の操作:[0004:Y±]乗算,変数[0014]の値<マイナス値だった場合はマイナス値にする
◆注釈:------------------------------
: :▼弾丸発射準備
: :
◆変数の操作:[0191:敵弾:移動量01]代入,0<移動量を初期化
◆変数の操作:[0221:敵弾:位置01X]代入,敵キャラ01の画面X<弾丸位置を設定
◆変数の操作:[0231:敵弾:位置01Y]代入,敵キャラ01の画面Y<弾丸位置を設定
◆変数の操作:[0231:敵弾:位置01Y]減算,8<Y位置をマスの中心に移動
◆変数の操作:[0241:敵弾:移動01X±]代入,変数[0003]の値<移動ピクセル数を設定
◆変数の操作:[0242:敵弾:移動01Y±]代入,変数[0004]の値<移動ピクセル数を設定
◆注釈:------------------------------
: :▼発射!
: :
◆変数の操作:[0181:敵弾:発射カウント01]代入,-120<弾丸発射を止める時間を設定
◆キャラクターの動作指定:敵キャラ01,主人公の方を向く
◆スイッチの操作:[0021:敵弾丸移動中01]をONにする<敵弾丸01の移動開始
◆効果音の演奏:冷気2<敵弾丸の発射効果音
◆
:分岐終了
◆ラベルの設定:10番
◆
:分岐終了
◆条件分岐:変数[0102:敵ダメージ02]が10より小さい
◆条件分岐:変数[0182:敵弾:発射カウント02]が0以上
◆条件分岐:敵キャラ02が左を向いている<敵弾丸01の設定をコピーして修正
◆条件分岐:変数[0202:敵弾:両者の距離X02]が1以上
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆条件分岐:変数[0202:敵弾:両者の距離X02]が-6以下
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆変数の操作:[0202:敵弾:両者の距離X02]乗算,-1
◆変数の操作:[0202:敵弾:両者の距離X02]加算,1
◆変数の操作:[0212:敵弾:両者の距離Y02]除算,変数[0202]の値
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が0以外
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆
:分岐終了
◆条件分岐:敵キャラ02が右を向いている
◆条件分岐:変数[0202:敵弾:両者の距離X02]が-1以下
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆条件分岐:変数[0202:敵弾:両者の距離X02]が6以上
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆変数の操作:[0202:敵弾:両者の距離X02]加算,1
◆変数の操作:[0212:敵弾:両者の距離Y02]除算,変数[0202]の値
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が0以外
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆
:分岐終了
◆条件分岐:敵キャラ02が上を向いている
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が1以上
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が-6以下
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆変数の操作:[0212:敵弾:両者の距離Y02]乗算,-1
◆変数の操作:[0212:敵弾:両者の距離Y02]加算,1
◆変数の操作:[0202:敵弾:両者の距離X02]除算,変数[0212]の値
◆条件分岐:変数[0202:敵弾:両者の距離X02]が0以外
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆
:分岐終了
◆条件分岐:敵キャラ02が下を向いている
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が-1以下
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が6以上
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆変数の操作:[0212:敵弾:両者の距離Y02]加算,1
◆変数の操作:[0202:敵弾:両者の距離X02]除算,変数[0212]の値
◆条件分岐:変数[0202:敵弾:両者の距離X02]が0以外
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆
:分岐終了
◆注釈:------------------------------
: :▼移動方向の設定準備
: :
◆変数の操作:[0003:X±]代入,主人公のX座標
◆変数の操作:[0004:Y±]代入,主人公のY座標
◆変数の操作:[0003:X±]減算,敵キャラ02のX座標
◆変数の操作:[0004:Y±]減算,敵キャラ02のY座標
◆変数の操作:[0013〜0014]代入,1
◆条件分岐:変数[0003:X±]が-1以下
◆変数の操作:[0003:X±]乗算,-1
◆変数の操作:[0013:敵弾:Xの±状態記憶]代入,-1
◆
:分岐終了
◆条件分岐:変数[0004:Y±]が-1以下
◆変数の操作:[0004:Y±]乗算,-1
◆変数の操作:[0014:敵弾:Yの±状態記憶]代入,-1
◆
:分岐終了
◆注釈:------------------------------
: :▼移動方向を設定
: :
◆条件分岐:変数[0003:X±]がV[0004]以上(オプション:ON)
◆変数の操作:[0004:Y±]乗算,8
◆変数の操作:[0004:Y±]除算,変数[0003]の値
◆変数の操作:[0004:Y±]加算,1
◆変数の操作:[0004:Y±]除算,2
◆変数の操作:[0003:X±]代入,4
◆
:それ以外の場合
◆変数の操作:[0003:X±]乗算,8
◆変数の操作:[0003:X±]除算,変数[0004]の値
◆変数の操作:[0003:X±]加算,1
◆変数の操作:[0003:X±]除算,2
◆変数の操作:[0004:Y±]代入,4
◆
:分岐終了
◆変数の操作:[0003:X±]乗算,変数[0013]の値
◆変数の操作:[0004:Y±]乗算,変数[0014]の値
◆注釈:------------------------------
: :▼弾丸発射準備
: :
◆変数の操作:[0192:敵弾:移動量02]代入,0
◆変数の操作:[0222:敵弾:位置02X]代入,敵キャラ02の画面X
◆変数の操作:[0232:敵弾:位置02Y]代入,敵キャラ02の画面Y
◆変数の操作:[0232:敵弾:位置02Y]減算,8
◆変数の操作:[0243:敵弾:移動02X±]代入,変数[0003]の値
◆変数の操作:[0244:敵弾:移動02Y±]代入,変数[0004]の値
◆注釈:------------------------------
: :▼発射!
: :
◆変数の操作:[0182:敵弾:発射カウント02]代入,-120
◆キャラクターの動作指定:敵キャラ02,主人公の方を向く
◆スイッチの操作:[0022:敵弾丸移動中02]をONにする
◆効果音の演奏:冷気2
◆
:分岐終了
◆ラベルの設定:11番
◆
:分岐終了 |
▲トップへ戻る▲ ▼壁の当たり判定を追加するまでジャンプ▼
■5マス以内で発射(扇形に4方向5マス以内で発射)
5マス以内に主人公がいる場合は、主人公の方を向いて弾丸を発射します。
▼攻撃範囲
設定の中に「除算,6」を行っている設定があります。
この設定は弾丸を発射するマス数を決める処理になります。
「除算6」の場合は…
両者の距離が5マス以内→弾丸を発射する |
両者の距離が5マス以上→弾丸を発射しない |
|
になります。
弾丸の1回の移動量を決めるイベント処理に関しては、別ページにて解説します。
【弾丸の1回の移動量を決める処理のページを開く】
注釈:弾丸発射の所は以下のように設定してください。
◆注釈:------------------------------------------------------------
: :弾丸発射
: :
◆条件分岐:変数[0101:敵ダメージ01]が10より小さい
◆条件分岐:変数[0181:敵弾:発射カウント01]が0以上
◆変数の操作:[0201:敵弾:両者の距離X01]除算,6
◆変数の操作:[0211:敵弾:両者の距離Y01]除算,6
◆条件分岐:変数[0201:敵弾:両者の距離X01]が0以外<主人公がX座標で射程外の時
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆条件分岐:変数[0211:敵弾:両者の距離Y01]が0以外<主人公がY座標で射程外の時
◆指定ラベルへ飛ぶ:10番
◆
:分岐終了
◆注釈:------------------------------
: :▼移動方向の設定準備
: :
◆変数の操作:[0003:X±]代入,主人公のX座標
◆変数の操作:[0004:Y±]代入,主人公のY座標
◆変数の操作:[0003:X±]減算,敵キャラ01のX座標
◆変数の操作:[0004:Y±]減算,敵キャラ01のY座標
◆変数の操作:[0013〜0014]代入,1
◆条件分岐:変数[0003:X±]が-1以下<X座標の距離がマイナス値の時
◆変数の操作:[0003:X±]乗算,-1
◆変数の操作:[0013:敵弾:Xの±状態記憶]代入,-1
◆
:分岐終了
◆条件分岐:変数[0004:Y±]が-1以下<Y座標の距離がマイナス値の時
◆変数の操作:[0004:Y±]乗算,-1
◆変数の操作:[0014:敵弾:Yの±状態記憶]代入,-1
◆
:分岐終了
◆注釈:------------------------------
: :▼移動方向を設定
: :
◆条件分岐:変数[0003:X±]がV[0004]以上(オプション:ON)<X座標の方が大きい時、または同値
◆変数の操作:[0004:Y±]乗算,8
◆変数の操作:[0004:Y±]除算,変数[0003]の値
◆変数の操作:[0004:Y±]加算,1
◆変数の操作:[0004:Y±]除算,2
◆変数の操作:[0003:X±]代入,4
◆
:それ以外の場合<X座標の方が小さい時
◆変数の操作:[0003:X±]乗算,8
◆変数の操作:[0003:X±]除算,変数[0004]の値
◆変数の操作:[0003:X±]加算,1
◆変数の操作:[0003:X±]除算,2
◆変数の操作:[0004:Y±]代入,4
◆
:分岐終了
◆変数の操作:[0003:X±]乗算,変数[0013]の値<マイナス値だった場合はマイナス値にする
◆変数の操作:[0004:Y±]乗算,変数[0014]の値<マイナス値だった場合はマイナス値にする
◆注釈:------------------------------
: :▼弾丸発射準備
: :
◆変数の操作:[0191:敵弾:移動量01]代入,0<移動量を初期化
◆変数の操作:[0221:敵弾:位置01X]代入,敵キャラ01の画面X<弾丸位置を設定
◆変数の操作:[0231:敵弾:位置01Y]代入,敵キャラ01の画面Y<弾丸位置を設定
◆変数の操作:[0231:敵弾:位置01Y]減算,8<Y位置をマスの中心に移動
◆変数の操作:[0241:敵弾:移動01X±]代入,変数[0003]の値<移動ピクセル数を設定
◆変数の操作:[0242:敵弾:移動01Y±]代入,変数[0004]の値<移動ピクセル数を設定
◆注釈:------------------------------
: :▼発射!
: :
◆変数の操作:[0181:敵弾:発射カウント01]代入,-120<弾丸発射を止める時間を設定
◆キャラクターの動作指定:敵キャラ01,主人公の方を向く
◆スイッチの操作:[0021:敵弾丸移動中01]をONにする<敵弾丸01の移動開始
◆効果音の演奏:冷気2<敵弾丸の発射効果音
◆
:分岐終了
◆ラベルの設定:10番
◆
:分岐終了
◆条件分岐:変数[0102:敵ダメージ02]が10より小さい
◆条件分岐:変数[0182:敵弾:発射カウント02]が0以上
◆変数の操作:[0202:敵弾:両者の距離X02]除算,6
◆変数の操作:[0212:敵弾:両者の距離Y02]除算,6
◆条件分岐:変数[0202:敵弾:両者の距離X02]が0以外<敵弾丸01の設定をコピーして修正
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆条件分岐:変数[0212:敵弾:両者の距離Y02]が0以外
◆指定ラベルへ飛ぶ:11番
◆
:分岐終了
◆注釈:------------------------------
: :▼移動方向の設定準備
: :
◆変数の操作:[0003:X±]代入,主人公のX座標
◆変数の操作:[0004:Y±]代入,主人公のY座標
◆変数の操作:[0003:X±]減算,敵キャラ02のX座標
◆変数の操作:[0004:Y±]減算,敵キャラ02のY座標
◆変数の操作:[0013〜0014]代入,1
◆条件分岐:変数[0003:X±]が-1以下
◆変数の操作:[0003:X±]乗算,-1
◆変数の操作:[0013:敵弾:Xの±状態記憶]代入,-1
◆
:分岐終了
◆条件分岐:変数[0004:Y±]が-1以下
◆変数の操作:[0004:Y±]乗算,-1
◆変数の操作:[0014:敵弾:Yの±状態記憶]代入,-1
◆
:分岐終了
◆注釈:------------------------------
: :▼移動方向を設定
: :
◆条件分岐:変数[0003:X±]がV[0004]以上(オプション:ON)
◆変数の操作:[0004:Y±]乗算,8
◆変数の操作:[0004:Y±]除算,変数[0003]の値
◆変数の操作:[0004:Y±]加算,1
◆変数の操作:[0004:Y±]除算,2
◆変数の操作:[0003:X±]代入,4
◆
:それ以外の場合
◆変数の操作:[0003:X±]乗算,8
◆変数の操作:[0003:X±]除算,変数[0004]の値
◆変数の操作:[0003:X±]加算,1
◆変数の操作:[0003:X±]除算,2
◆変数の操作:[0004:Y±]代入,4
◆
:分岐終了
◆変数の操作:[0003:X±]乗算,変数[0013]の値
◆変数の操作:[0004:Y±]乗算,変数[0014]の値
◆注釈:------------------------------
: :▼弾丸発射準備
: :
◆変数の操作:[0192:敵弾:移動量02]代入,0
◆変数の操作:[0222:敵弾:位置02X]代入,敵キャラ02の画面X
◆変数の操作:[0232:敵弾:位置02Y]代入,敵キャラ02の画面Y
◆変数の操作:[0232:敵弾:位置02Y]減算,8
◆変数の操作:[0243:敵弾:移動02X±]代入,変数[0003]の値
◆変数の操作:[0244:敵弾:移動02Y±]代入,変数[0004]の値
◆注釈:------------------------------
: :▼発射!
: :
◆変数の操作:[0182:敵弾:発射カウント02]代入,-120
◆キャラクターの動作指定:敵キャラ02,主人公の方を向く
◆スイッチの操作:[0022:敵弾丸移動中02]をONにする
◆効果音の演奏:冷気2
◆
:分岐終了
◆ラベルの設定:11番
◆
:分岐終了 |
▲トップへ戻る▲
■壁の当たり判定を追加する
弾丸が壁に当たったら消えるようにします。
このイベント設定は、主人公の弾丸で設定する壁の当たり判定を追加するの設定をそのまま設定します。
地形IDなどの説明は、壁の当たり判定を追加するのページをご覧ください。
【壁の当たり判定を追加するのページを開く】
注釈:弾丸移動の所は以下のようにイベントを追加してください。
画面スクロールの設定がある場合は…
◆変数の操作:[0005:X座標]加算,変数[0169]の値
◆変数の操作:[0006:Y座標]加算,変数[0170]の値 |
の設定も行ってください。
◆注釈:------------------------------------------------------------
: :弾丸移動
: :
◆変数の操作:[0002:移動距離]代入,20
◆条件分岐:スイッチ[0021:敵弾丸移動中01]がON
◆条件分岐:変数[0191:敵弾:移動量01]がV[0002]以上
◆スイッチの操作:[0021:敵弾丸移動中01]をOFFにする
◆
:分岐終了
◆変数の操作:[0221:敵弾:位置01X]加算,変数[0241]の値
◆変数の操作:[0231:敵弾:位置01Y]加算,変数[0242]の値
◆ピクチャーの移動:4,(V[0221],V[0231]),0.0秒
◆変数の操作:[0011:敵弾:当たり確認X]代入,変数[0221]の値
◆変数の操作:[0012:敵弾:当たり確認Y]代入,変数[0231]の値
◆変数の操作:[0011:敵弾:当たり確認X]減算,主人公の画面X
◆変数の操作:[0012:敵弾:当たり確認Y]減算,主人公の画面Y
◆変数の操作:[0012:敵弾:当たり確認Y]加算,8
◆変数の操作:[0011〜0012]除算,8
◆条件分岐:変数[0011:敵弾:当たり確認X]が0
◆条件分岐:変数[0012:敵弾:当たり確認Y]が0
◆条件分岐:変数[0022:無敵時間]が0以上
◆キャラクターのフラッシュ:主人公,0.5秒
◆効果音の演奏:打撃1
◆HPの増減:アレックスのHPを1減らす
◆変数の操作:[0022:無敵時間]代入,-30
◆スイッチの操作:[0021:敵弾丸移動中01]をOFFにする
◆
:分岐終了
◆
:分岐終了
◆
:分岐終了
◆変数の操作:[0005:X座標]代入,変数[0221]の値
◆変数の操作:[0006:Y座標]代入,変数[0231]の値
◆変数の操作:[0005:X座標]加算,変数[0169]の値<画面スクロールがあるのみ設定
◆変数の操作:[0006:Y座標]加算,変数[0170]の値
◆変数の操作:[0005〜0006]除算,16
◆指定位置の地形ID取得:(V[0005],V[0006]),[0007:ID]
◆条件分岐:変数[0007:ID]が2<壁の地形IDの時
◆スイッチの操作:[0021:敵弾丸移動中01]をOFFにする
◆
:分岐終了
◆
:それ以外の場合
◆ピクチャーの移動:4,(160,120),0.0秒
◆
:分岐終了
◆条件分岐:スイッチ[0022:敵弾丸移動中02]がON
◆条件分岐:変数[0192:敵弾:移動量02]がV[0002]以上
◆スイッチの操作:[0022:敵弾丸移動中02]をOFFにする
◆
:分岐終了
◆変数の操作:[0222:敵弾:位置02X]加算,変数[0243]の値
◆変数の操作:[0232:敵弾:位置02Y]加算,変数[0244]の値
◆ピクチャーの移動:5,(V[0222],V[0232]),0.0秒
◆変数の操作:[0011:敵弾:当たり確認X]代入,変数[0222]の値
◆変数の操作:[0012:敵弾:当たり確認Y]代入,変数[0232]の値
◆変数の操作:[0011:敵弾:当たり確認X]減算,主人公の画面X
◆変数の操作:[0012:敵弾:当たり確認Y]減算,主人公の画面Y
◆変数の操作:[0012:敵弾:当たり確認Y]加算,8
◆変数の操作:[0011〜0012]除算,8
◆条件分岐:変数[0011:敵弾:当たり確認X]が0
◆条件分岐:変数[0012:敵弾:当たり確認Y]が0
◆条件分岐:変数[0022:無敵時間]が0以上
◆キャラクターのフラッシュ:主人公,0.5秒
◆効果音の演奏:打撃1
◆HPの増減:アレックスのHPを1減らす
◆変数の操作:[0022:無敵時間]代入,-30
◆スイッチの操作:[0022:敵弾丸移動中02]をOFFにする
◆
:分岐終了
◆
:分岐終了
◆
:分岐終了
◆変数の操作:[0005:X座標]代入,変数[0222]の値<敵弾丸01の設定をコピーして修正
◆変数の操作:[0006:Y座標]代入,変数[0232]の値
◆変数の操作:[0005:X座標]加算,変数[0169]の値<画面スクロールがあるのみ設定
◆変数の操作:[0006:Y座標]加算,変数[0170]の値
◆変数の操作:[0005〜0006]除算,16
◆指定位置の地形ID取得:(V[0005],V[0006]),[0007:ID]
◆条件分岐:変数[0007:ID]が2
◆スイッチの操作:[0022:敵弾丸移動中02]をOFFにする
◆
:分岐終了
◆
:それ以外の場合
◆ピクチャーの移動:5,(160,120),0.0秒
◆
:分岐終了 |
敵キャラと主人公の間に壁がある時(主人公が見えない時)には、
弾丸を発射しないようにする場合は、弾丸を発射する前に壁があるかどうかを調べる必要があります。
発射前に壁の有無を調べる方法は↓をクリックしてご確認ください。
【発射前に壁の有無を確認する方法を見る】
なお、↑のページの設定を行わない場合は、
壁の向こう側にいる主人公(見えない主人公)に向かって弾丸を発射します。
※壁に向かって撃っても、弾丸は壁に当たって消滅するので、主人公には当たりません。
▲トップへ戻る▲
■画面スクロールに対応させる
画面スクロールに対応できるように設定を改良します。
主人公の弾丸の画面スクロールに対応させるを設定していない場合は、
先に画面スクロールに対応させるの設定を行ってください。
【画面スクロールに対応させるのページを開く】
追加設定に関しては、マップループ無し、マップループありによって異なります。
▼マップループありの記載位置まで飛ぶ
★マップループ無しの場合の設定例)
主人公の弾丸処理の中にある画面スクロールの所に以下のイベントを追加してください。
◆注釈:------------------------------------------------------------
: :画面スクロール
: :
◆変数の操作:[0161:XY]代入,主人公のX座標
◆変数の操作:[0161:XY]乗算,1000
◆変数の操作:[0161:XY]加算,主人公のY座標
◆条件分岐:変数[0162:前のXY]がV[0161]以外
◆変数の操作:[0162:前のXY]代入,変数[0161]の値
◆変数の操作:[0163:ずらす回数]代入,8
◆変数の操作:[0164〜0167]代入,0
◆条件分岐:主人公が左を向いている
◆変数の操作:[0164:ずらす量X]代入,2
◆変数の操作:[0166:位置調整X]代入,16
◆
:分岐終了
◆条件分岐:主人公が右を向いている
◆変数の操作:[0164:ずらす量X]代入,-2
◆変数の操作:[0166:位置調整X]代入,-16
◆
:分岐終了
◆条件分岐:主人公が上を向いている
◆変数の操作:[0165:ずらす量Y]代入,2
◆変数の操作:[0167:位置調整Y]代入,16
◆
:分岐終了
◆条件分岐:主人公が下を向いている
◆変数の操作:[0165:ずらす量Y]代入,-2
◆変数の操作:[0167:位置調整Y]代入,-16
◆
:分岐終了
◆スイッチの操作:[0004〜0005]をONにする
◆変数の操作:[0168:主人公の画面位置]代入,主人公の画面X
◆条件分岐:変数[0168:主人公の画面位置]が152以外
◆スイッチの操作:[0004:画面スクロールX]をOFFにする
◆
:分岐終了
◆変数の操作:[0168:主人公の画面位置]代入,主人公の画面Y
◆条件分岐:変数[0168:主人公の画面位置]が128以外
◆スイッチの操作:[0005:画面スクロールY]をOFFにする
◆
:分岐終了
◆
:分岐終了
◆条件分岐:変数[0163:ずらす回数]が1以上
◆変数の操作:[0163:ずらす回数]減算,1
◆条件分岐:スイッチ[0004:画面スクロールX]がON
◆変数の操作:[0041〜0043]加算,変数[0164]の値
◆変数の操作:[0221〜0230]加算,変数[0164]の値
◆
:分岐終了
◆条件分岐:スイッチ[0005:画面スクロールY]がON
◆変数の操作:[0051〜0053]加算,変数[0165]の値
◆変数の操作:[0231〜0240]加算,変数[0165]の値
◆
:分岐終了
◆変数の操作:[0166:位置調整X]減算,変数[0164]の値
◆変数の操作:[0167:位置調整Y]減算,変数[0165]の値
◆
:分岐終了
◆変数の操作:[0169:画面スクロールX+]代入,主人公のX座標
◆変数の操作:[0170:画面スクロールY+]代入,主人公のY座標
◆変数の操作:[0169〜0170]乗算,16
◆変数の操作:[0169:画面スクロールX+]加算,8
◆変数の操作:[0170:画面スクロールY+]加算,16
◆変数の操作:[0169:画面スクロールX+]減算,主人公の画面X
◆変数の操作:[0170:画面スクロールY+]減算,主人公の画面Y
◆変数の操作:[0169:画面スクロールX+]加算,変数[0166]の値
◆変数の操作:[0170:画面スクロールY+]加算,変数[0167]の値 |
以上で設定完了です。
★マップループ無しの場合の設定例)
主人公の弾丸処理の中にある画面スクロールの所に以下のイベントを追加してください。
◆注釈:------------------------------------------------------------
: :画面スクロール
: :
◆変数の操作:[0161:XY]代入,主人公のX座標
◆変数の操作:[0161:XY]乗算,1000
◆変数の操作:[0161:XY]加算,主人公のY座標
◆条件分岐:変数[0162:前のXY]がV[0161]以外
◆変数の操作:[0162:前のXY]代入,変数[0161]の値
◆変数の操作:[0163:ずらす回数]代入,8
◆変数の操作:[0164〜0167]代入,0
◆条件分岐:主人公が左を向いている
◆変数の操作:[0164:ずらす量X]代入,2
◆変数の操作:[0166:位置調整X]代入,16
◆
:分岐終了
◆条件分岐:主人公が右を向いている
◆変数の操作:[0164:ずらす量X]代入,-2
◆変数の操作:[0166:位置調整X]代入,-16
◆
:分岐終了
◆条件分岐:主人公が上を向いている
◆変数の操作:[0165:ずらす量Y]代入,2
◆変数の操作:[0167:位置調整Y]代入,16
◆
:分岐終了
◆条件分岐:主人公が下を向いている
◆変数の操作:[0165:ずらす量Y]代入,-2
◆変数の操作:[0167:位置調整Y]代入,-16
◆
:分岐終了
◆
:分岐終了
◆条件分岐:変数[0163:ずらす回数]が1以上
◆変数の操作:[0163:ずらす回数]減算,1
◆変数の操作:[0041〜0043]加算,変数[0164]の値
◆変数の操作:[0221〜0230]加算,変数[0164]の値
◆変数の操作:[0051〜0053]加算,変数[0165]の値
◆変数の操作:[0231〜0240]加算,変数[0165]の値
◆変数の操作:[0166:位置調整X]減算,変数[0164]の値
◆変数の操作:[0167:位置調整Y]減算,変数[0165]の値
◆
:分岐終了
◆変数の操作:[0169:画面スクロールX+]代入,主人公のX座標
◆変数の操作:[0170:画面スクロールY+]代入,主人公のY座標
◆変数の操作:[0169:画面スクロールX+]減算,9
◆変数の操作:[0170:画面スクロールY+]減算,7
◆変数の操作:[0169:画面スクロールX+]加算,変数[0171]の値
◆変数の操作:[0170:画面スクロールY+]加算,変数[0172]の値
◆変数の操作:[0169〜0170]乗算,16
◆変数の操作:[0169:画面スクロールX+]加算,変数[0166]の値
◆変数の操作:[0170:画面スクロールY+]加算,変数[0167]の値 |
下記の設定は「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〜0210]代入,主人公の画面X
◆変数の操作:[0211〜0220]代入,主人公の画面Y
◆変数の操作:[0201:敵弾:両者の距離X01]減算,敵キャラ01の画面X
◆変数の操作:[0211:敵弾:両者の距離Y01]減算,敵キャラ01の画面Y
◆変数の操作:[0202:敵弾:両者の距離X02]減算,敵キャラ02の画面X
◆変数の操作:[0212:敵弾:両者の距離Y02]減算,敵キャラ02の画面Y
◆変数の操作:[0201〜0220]除算,16 |
に変えてください。
マップイベント「敵弾丸処理」の注釈:弾丸発射の中で、
注釈:移動方向を設定準備を設定している場合(「真っ直ぐと発射」以外)は、
以下のように設定してください。
◆注釈:------------------------------
: :▼移動方向を設定準備
: :
◆変数の操作:[0003:X±]代入,主人公の画面X
◆変数の操作:[0004:Y±]代入,主人公の画面Y
◆変数の操作:[0003:X±]減算,敵キャラ01の画面X
◆変数の操作:[0004:Y±]減算,敵キャラ01の画面Y
◆変数の操作:[0003〜0004]除算,16
◆変数の操作:[0013〜0014]代入,1
◆条件分岐:変数[0003:X±]が-1以下
◆変数の操作:[0003:X±]乗算,-1
◆変数の操作:[0013:敵弾:Xの±状態記憶]代入,-1
◆
:分岐終了
◆条件分岐:変数[0004:Y±]が-1以下
◆変数の操作:[0004:Y±]乗算,-1
◆変数の操作:[0014:敵弾:Yの±状態記憶]代入,-1
◆
:分岐終了 |
以上で設定完了です。
▲トップへ戻る▲
■敵のダメージ量(HP)の設定を増やす
敵01のダメージ量(HP)の設定を増やす設定例です。
今回は「10」から「20」(10発で倒すから20発で倒す)に変更します。
なお、この色の設定は、敵キャラに直接主人公が触れた時に、
主人公がダメージを受けるようにする場合に必要な設定です。
もしも敵キャラに触れてもダメージが受けない場合は、この色の設定は不要です。
■マップイベント「敵キャラ01」
▼1ページ目
イベント出現条件:なし
イベント開始条件:イベントから触れたとき
グラフィック:敵キャラの歩行グラフィック
◆条件分岐:スイッチ[0003:ダメージ処理]がON
◆変数の操作:[0101:敵ダメージ01]加算,1
◆条件分岐:変数[0101:敵ダメージ01]が19以下(オプション:ON)
◆キャラクターのフラッシュ:このイベント,0.5秒
◆効果音の演奏:ダメージ1
◆
:それ以外の場合
◆条件分岐:変数[0101:敵ダメージ01]が20
◆効果音の演奏:攻撃2
◆イベントの位置を設定:このイベント,(000,000)
◆
:分岐終了
◆
:分岐終了
◆イベント処理の中断
◆
:分岐終了
◆条件分岐:決定キーでこのイベントを開始した
◆イベント処理の中断
◆
:分岐終了
◆条件分岐:変数[0022:無敵時間]が-1以下
◆イベント処理の中断
◆
:分岐終了
◆変数の操作:[0022:無敵時間]代入,-30
◆キャラクターのフラッシュ:主人公,0.5秒(R31,G00,B00,V31)
◆効果音の演奏:打撃1
◆HPの増減:アレックスのHPを1減らす
◆
▼2ページ目
イベント出現条件:変数[0101:敵ダメージ01]が20以上
イベント開始条件:決定キーが押されたとき
グラフィック:透明
イベント実行内容は何も設定しません。 |
マップイベント「敵弾丸処理」の以下の注釈の所の設定を変更してください。
◆注釈:------------------------------------------------------------
: :弾丸発射
: :
◆条件分岐:変数[0101:敵ダメージ01]が20より小さい
◆条件分岐:変数[0181:敵弾:発射カウント01]が0以上
〜以降はそのまま〜 |
▲トップへ戻る▲
■見つけたら近寄る
普段は決められた移動行動を行っている敵キャラが、
主人公を見つけたら近づきながら攻撃していくように設定します。
今回は、敵01の設定を例とし…
スイッチ[主人公に近づく:敵01]がOFF→敵は移動しない |
スイッチ[主人公に近づく:敵01]がON →敵は移動する |
|
と設定します。
マップイベント「敵キャラ01」の設定を行います。
ページの設定は、以下の通りです。
1ページ目=停止している状態(右回転して主人公を探す) |
2ページ目=移動している状態(主人公に近寄る/新規ページです) |
3ページ目=消去状態(2ページ目だったページです) |
|
1ページ目の移動タイプでは、移動ルートで右回転を設定していますが、
移動タイプの設定には特に決まりは無く、決められたルートの移動や左右に往復、
全く動かず移動しないで下向きの固定など、自由に設定する事ができます。
なお、主人公から攻撃を受けた場合は、強制的にスイッチがONになるようにする場合は、
1ページ目のこの色の設定を行ってください。
この色の設定は、敵キャラに直接主人公が触れた時に、
主人公がダメージを受けるようにする場合に必要な設定です。
もしも敵キャラに触れてもダメージが受けない場合は、この色の設定は不要です。
■マップイベント「敵キャラ01」
▼1ページ目
イベント出現条件:なし
イベント開始条件:イベントから触れたとき
グラフィック:敵キャラの歩行グラフィック
移動タイプ:移動ルート指定
移動頻度:2※1にすると回転速度が遅くなります。
移動ルートの設定:右に90度回転
◆スイッチの操作:[0041:主人公に近づく:敵01]をONにする<必要ならば設定
◆条件分岐:スイッチ[0003:ダメージ処理]がON
◆変数の操作:[0101:敵ダメージ01]加算,1
◆条件分岐:変数[0101:敵ダメージ01]が9以下(オプション:ON)
◆キャラクターのフラッシュ:このイベント,0.5秒
◆効果音の演奏:ダメージ1
◆
:それ以外の場合
◆条件分岐:変数[0101:敵ダメージ01]が10
◆効果音の演奏:攻撃2
◆イベントの位置を設定:このイベント,(000,000)
◆
:分岐終了
◆
:分岐終了
◆イベント処理の中断
◆
:分岐終了
◆条件分岐:決定キーでこのイベントを開始した
◆イベント処理の中断
◆
:分岐終了
◆条件分岐:変数[0022:無敵時間]が-1以下
◆イベント処理の中断
◆
:分岐終了
◆変数の操作:[0022:無敵時間]代入,-30
◆キャラクターのフラッシュ:主人公,0.5秒(R31,G00,B00,V31)
◆効果音の演奏:打撃1
◆HPの増減:アレックスのHPを1減らす
◆
▼2ページ目※このページは1ページ目をコピー&貼り付けして作成してください。
イベント出現条件:スイッチ[0041:主人公に近づく:敵01]がON
イベント開始条件:イベントから触れたとき
グラフィック:敵キャラの歩行グラフィック
移動タイプ:主人公に近寄る
◆条件分岐:決定キーでこのイベントを開始した
◆イベント処理の中断
◆
:分岐終了
◆条件分岐:変数[0022:無敵時間]が-1以下
◆イベント処理の中断
◆
:分岐終了
◆変数の操作:[0022:無敵時間]代入,-30
◆キャラクターのフラッシュ:主人公,0.5秒(R31,G00,B00,V31)
◆効果音の演奏:打撃1
◆HPの増減:アレックスのHPを1減らす
◆
▼3ページ目
イベント出現条件:変数[0101:敵ダメージ01]が10以上
イベント開始条件:決定キーが押されたとき
グラフィック:透明
イベント実行内容は何も設定しません。 |
マップイベント「初期設定」にスイッチをOFFにする設定を追加します。
※一応敵キャラ2体分と言う事で、スイッチ0041〜0042番の設定になっています。
■マップイベント「初期設定」
▼1ページ目
イベント出現条件:なし
イベント開始条件:自動的に始まる
◆ピクチャーの表示:1,dan(160,120)
◆ピクチャーの表示:2,dan(160,120)
◆ピクチャーの表示:3,dan(160,120)
◆ピクチャーの表示:4,teki_dan(160,120)
◆ピクチャーの表示:5,teki_dan(160,120)
◆スイッチの操作:[0041〜0042]をOFFにする
◆変数の操作:[0008:1ページ目]代入,1
◆変数の操作:[0009:最小敵イベントID]代入,3
◆変数の操作:[0101〜0102]代入,0
◆変数の操作:[0181〜0260]代入,0
◆スイッチの操作:[0001:システム起動]をONにする
◆
▼2ページ目
*追加・変更はありません。 |
マップイベント「敵弾丸処理」の注釈:弾丸発射の中で、
注釈:発射!の所にスイッチをONにする設定を追加してください。
◆注釈:------------------------------
: :▼発射!
: :
◆変数の操作:[0181:敵弾:発射カウント01]代入,-120
◆スイッチの操作:[0021:敵弾丸移動中01]をONにする
◆スイッチの操作:[0041:主人公に近づく:敵01]をONにする
◆効果音の演奏:冷気2 |
以上で設定完了です。
■補足
敵キャラが主人公の弾丸の攻撃を受けた時や敵キャラに直接触れた時に、
敵キャラが主人公の方を向くようにする場合は、敵キャラの1ページ目の最初に…
◆キャラクターの動作指定:このイベント,主人公の方を向く |
を設定してください。
|