主人公の一歩先にマップイベントがあるか調べるコモンイベント

2022/04/27

ウディタ ゲーム制作

  今作っているゲームで主人公の頭上にアイコンを表示させるにあたって、主人公の一歩先にマップ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」に入れ込むことで、常に処理が動くようにしています。

最後まで読んでいただき、ありがとうございます


profile


MNEET
ゲーム制作を亀並みですがやってます
MNEET(@ごみ)の自創作置き場です
ゲーム制作以外にも自創作関係を投稿していこうと思っています
幅広に創作活動をしていきたい気持ち
よろしくお願いします👐

ゲーム制作や創作以外。日常系という名の自我👇
生活LOG+

MNEETのTwitter👇
垢名【ごみ】  Twitter

作ったゲーム

初完走!第一作目 徘徊者の館
第二作目 ぼく

カテゴリー

このブログを検索

QooQ