当たり判定を作る


攻撃処理で多用する当たり判定イベントを作っていきます。

以下のように変数に名前を付け、
0005 攻撃判定X
0006 攻撃判定Y
0008 命中ID
0009地形タグ取得

画像のように設定。

+ コード クリックで表示
◆指定位置の情報取得:命中ID, イベントID, ({攻撃判定X},{攻撃判定Y})
◆指定位置の情報取得:地形タグ取得, 地形タグ, ({攻撃判定X},{攻撃判定Y})
◆条件分岐:命中ID ≠ 0
 ◆条件分岐:地形タグ取得 ≠ 1
   ◆条件分岐:スクリプト:~$dataMap.events[$gameVariables.value(8)].note.indexOf("[敵]")
     ◆スイッチの操作:#0005 攻撃ヒット = ON
     ◆プラグインコマンド:TE_CALL_MAP_EVENT \V[8] 1
     ◆
   :分岐終了
   ◆
 :それ以外のとき
   ◆スイッチの操作:#0005 攻撃ヒット = ON
   ◆
 :分岐終了
 ◆
:分岐終了
※プラグインコマンドの処理は素材のプラグインを入れ忘れているとエラーが出ます。

座標(攻撃判定X,攻撃判定Y)に存在するマップイベントのIDと地形タグを取得します。
そこでマップイベントが読み取られ、かつ地形タグが1でなく、そのイベントメモ欄に[敵]と書かれていれば攻撃が当たったとみなして、該当イベントの1ページ目の処理を呼び出す仕組みになっています。
以上で当たり判定イベントを作ることができました

銃の攻撃処理を作る

前の項で作成した当たり判定イベントを使ってハンドガンで攻撃する際の処理を作ります。
プレイヤー前方15マスの情報を順次当たり判定イベントで調べていく作りです。
+ コード クリックで表示
◆変数の操作:#0005 攻撃判定X = プレイヤーのマップX
◆変数の操作:#0006 攻撃判定Y = プレイヤーのマップY
◆変数の操作:#0007 判定範囲 = 0
◆ループ
 ◆条件分岐:プレイヤーが下を向いている
   ◆変数の操作:#0006 攻撃判定Y += 1
   ◆
 :分岐終了
 ◆条件分岐:プレイヤーが左を向いている
   ◆変数の操作:#0005 攻撃判定X -= 1
   ◆
 :分岐終了
 ◆条件分岐:プレイヤーが右を向いている
   ◆変数の操作:#0005 攻撃判定X += 1
   ◆
 :分岐終了
 ◆条件分岐:プレイヤーが上を向いている
   ◆変数の操作:#0006 攻撃判定Y -= 1
   ◆
 :分岐終了
 ◆コモンイベント:当たり判定
 ◆変数の操作:#0007 判定範囲 += 1
 ◆条件分岐:判定範囲 = 15
   ◆ループの中断
   ◆
 :分岐終了
 ◆条件分岐:攻撃ヒットがON
   ◆スイッチの操作:#0005 攻撃ヒット = OFF
   ◆ループの中断
   ◆
 :分岐終了
 ◆
:以上繰り返し
◆スイッチの操作:#0004 ハンドガン攻撃処理 = OFF

敵オブジェクトを作る

新規マップイベントを作成し、メモ欄に[敵]と書きます。
攻撃が当たった時に呼び出される1ページ目の処理は適当にSEを鳴らすなどしておきましょう。

ここまでで、敵オブジェクトに銃で攻撃して処理が呼び出されSEが鳴れば成功です。
敵HPの概念や敵の攻撃処理は後に作っていきます。
最終更新:2024年03月19日 16:14