今作っているゲームで主人公の頭上にアイコンを表示させるにあたって、主人公の一歩先にマップEvがあるかを調べたいと思い、それをどうにかコモンEvで作ることが出来ました。
主人公の一歩先にマップイベントがあるか調べる
このコモンEvを作るにあたって、通常変数を使用しています。(通常変数:V3[前にEvあり])
実際に作ったコモンイベント内容
起動条件:呼出しのみ
|■変数操作: CSelf20[まっぷID] = コモンEv217セルフ24[マップID] + 0
|▼ 向いた方向にEvがあるか調べる
|■変数操作+: CSelf25[向き] = 主人公 の 向き(1~9)
|■変数操作: CSelf30[主X] = コモンEv217セルフ27[主人公 X] + 0
|■変数操作: CSelf31[主Y] = コモンEv217セルフ28[主人公 Y] + 0
|■変数操作: CSelf28[マップX] = コモンEv217セルフ29[マップ X] + 0
|■変数操作: CSelf29[マップY] = コモンEv217セルフ30[マップ Y] + 0
|▼ 一歩先(チェックXY)=調査ポイントEvIDのXY のとき
|▼ 決定キーでEvを起動
|■条件分岐(変数): 【1】 CSelf25[向き] が 2 と同じ 【2】 CSelf25[向き] が 8 と同じ
|-◇分岐: 【1】 [ CSelf25[向き] が 2 と同じ ]の場合↓
| |■変数操作: CSelf31[主Y] += 1 + 0
| |■
|-◇分岐: 【2】 [ CSelf25[向き] が 8 と同じ ]の場合↓
| |■変数操作: CSelf31[主Y] -= 1 + 0
| |■
|-◇上記以外
| |■条件分岐(変数): 【1】 CSelf25[向き] が 4 と同じ 【2】 CSelf25[向き] が 6 と同じ
| |-◇分岐: 【1】 [ CSelf25[向き] が 4 と同じ ]の場合↓
| | |■変数操作: CSelf30[主X] -= 1 + 0
| | |■
| |-◇分岐: 【2】 [ CSelf25[向き] が 6 と同じ ]の場合↓
| | |■変数操作: CSelf30[主X] += 1 + 0
| | |■
| |◇分岐終了◇
| |■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf30[主X] が CSelf28[マップX] と同じ
|-◇分岐: 【1】 [ CSelf30[主X] が CSelf28[マップX] と同じ ]の場合↓
| |■条件分岐(変数): 【1】 CSelf31[主Y] が CSelf29[マップY] と同じ
| |-◇分岐: 【1】 [ CSelf31[主Y] が CSelf29[マップY] と同じ ]の場合↓
| | |▼ 前にEvあり
| | |■変数操作: V3[前にEvあり] = 1 + 0
| | |■
| |◇分岐終了◇
| |■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf30[主X] が CSelf28[マップX] 以外
|-◇分岐: 【1】 [ CSelf30[主X] が CSelf28[マップX] 以外 ]の場合↓
| |■条件分岐(変数): 【1】 CSelf31[主Y] が CSelf29[マップY] 以外
| |-◇分岐: 【1】 [ CSelf31[主Y] が CSelf29[マップY] 以外 ]の場合↓
| | |▼ 前にEvあり
| | |■変数操作: V3[前にEvあり] = 0 + 0
| | |■
| |◇分岐終了◇
| |■
|◇分岐終了◇
※コモンEv217セルフ○[■■] ~は、変数呼出し値を使って「頭上にアイコンを表示させるコモンEv」のコモンself変数の内容を呼び出しています。「主人公のXY座標・マップEvのXY座標、マップEvのID」をコレで呼び出しています。
まず主人公の一歩先にマップEvがあるかどうか?を調べるため、まず主人公の向きを取得する必要があります。変数操作+: CSelf25[向き] = 主人公 の 向き(1~9)で主人公の向きを取得できます。
向きを取得したら分岐を行い、各向きごとに+-して主人公の向きの一歩先の座標を主人公のXY座標に格納していきます([向き]=4(左)のときX-=1)
格納された主人公のXY座標(一歩先のXY座標)がマップEvのXY座標と同じとき、フラグとして「通常変数V3[前にEvあり]が=1」になり、それ以外のときは「通常変数V3[前にEvあり]が=0」とします。
これで一歩先にマップEvがあるか調べるコモンEvの完成です。
このコモンEvを並列常時で動かしている「主人公の頭上にアイコンを表示するコモンEv」に入れ込むことで、常に処理が動くようにしています。
最後まで読んでいただき、ありがとうございます