RPGツクール2000/マップイベント
監視イベント
■壁を判断する監視イベント
(更新:2016/10/15)


主人公を監視するマップイベントに、壁を判断する設定を追加します。


このページは続きとなっているページです
監視イベントの基礎ページをご覧の上でこのページをご覧ください。
なお、基礎ページには、
このページの処理を含めたサンプルデータがあります。
【監視イベントの基礎ページを見る】

この色の部分は監視イベントのページにあった部分です。



☆地形の準備
壁があるかどうかの判断は、
イベントコマンド:指定位置の地形ID取得を使って、
地形IDを読み取って判断します。

データベース「地形」にて、壁の地形壁ではない地形を用意してください。
今回は、
地形番号0001番=平地(壁ではない)
地形番号0002番=壁

とします。


データベース「チップセット」の設定を行います。
下層チップの[地形]の設定で、
壁にしたい下層チップは地形番号「2」。
壁ではない下層チップは地形番号「1(2以外の番号)」を設定してください。


以上で地形の準備は完了です。



☆スイッチ・変数
スイッチと変数の番号使用内容の一覧表です。

スイッチ
番号 名前 使用内容
0001 2ページ目起動 主人公を見つけた時にスイッチONにして、
2ページ目の「主人公に近寄る」を起動させる時に使用

変数
番号 名前 使用内容
0001 X座標 主人公のX座標を取得
0002 Y座標 主人公のY座標を取得
0003 監視用X座標 監視イベントのX座標を取得
0004 監視用Y座標 監視イベントのY座標を取得
0005 X座標± 調べるマスを変える時に使用
0006 Y座標± 調べるマスを変える時に使用
0007 地形ID 地形IDを取得する時に使用
  
0011 X座標01 主人公の向きが上下の時に
主人公の1つ左側のマスを調べる時に使用
0012 X座標02 主人公と同じX座標のマスを調べる時に使用
0013 X座標03 主人公の向きが上下の時に
主人公の1つ右側のマスを調べる時に使用
  
0016 Y座標01 主人公の向きが左右の時に
主人公の1つ上側のマスを調べる時に使用
0017 Y座標02 主人公と同じY座標のマスを調べる時に使用
0018 Y座標03 主人公の向きが左右の時に
主人公の1つ下側のマスを調べる時に使用

【変数の一覧表を別ウィンドウで表示する】



☆前方4マスの監視イベントに追加
監視イベント(基礎ページ)で紹介している
☆イベント設定をコンパクトにするのイベントに、
壁を判断するイベントを追加します。

▼左向きの時の監視範囲
 ▼この場合は見つかりません
 

▼このような感じで調べます

 ▼壁がある先のマスは調べません
 

■マップイベント「監視イベント」
▼1ページ目
イベント出現条件:なし
イベント開始条件:定期的に並列処理する
◆変数の操作:[0001:主人公X座標]代入,主人公のX座標
◆変数の操作:[0002:主人公Y座標]代入,主人公のY座標
◆変数の操作:[0003:監視用X座標]代入,このイベントのX座標
◆変数の操作:[0004:監視用Y座標]代入,このイベントのY座標
◆変数の操作:[0005〜0006]代入,0
◆条件分岐:このイベントが左を向いている
 ◆変数の操作:[0005:X座標±]代入,-1
 ◆
:それ以外の場合
 ◆条件分岐:このイベントが右を向いている
  ◆変数の操作:[0005:X座標±]代入,1
  ◆
 :それ以外の場合
  ◆条件分岐:このイベントが上を向いている
   ◆変数の操作:[0006:Y座標±]代入,-1
   ◆
  :それ以外の場合
   ◆変数の操作:[0006:Y座標±]代入,1
   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆
:分岐終了
◆注釈:1マス目
◆変数の操作:[0003:監視用X座標]加算,変数[0005]の値
◆変数の操作:[0004:監視用Y座標]加算,変数[0006]の値
◆指定位置の地形ID取得:(V[0003],V[0004]),[0011:地形ID]
◆条件分岐:変数[0011:地形ID]が2<1マス目に壁がある
 ◆イベント処理の中断
 ◆
:分岐終了

◆条件分岐:変数[0003:監視用X座標]がV[0001]と同値
 ◆条件分岐:変数[0004:監視用Y座標]がV[0002]と同値
  ◆スイッチの操作:[0001:2ページ目起動]をONにする
  ◆イベント処理の中断
  ◆
 :分岐終了
 ◆
:分岐終了
◆注釈:2マス目
◆変数の操作:[0003:監視用X座標]加算,変数[0005]の値
◆変数の操作:[0004:監視用Y座標]加算,変数[0006]の値
◆指定位置の地形ID取得:(V[0003],V[0004]),[0011:地形ID]
◆条件分岐:変数[0011:地形ID]が2<2マス目に壁がある
 ◆イベント処理の中断
 ◆
:分岐終了

◆条件分岐:変数[0003:監視用X座標]がV[0001]と同値
 ◆条件分岐:変数[0004:監視用Y座標]がV[0002]と同値
  ◆スイッチの操作:[0001:2ページ目起動]をONにする
  ◆イベント処理の中断
  ◆
 :分岐終了
 ◆
:分岐終了
◆注釈:3マス目
◆変数の操作:[0003:監視用X座標]加算,変数[0005]の値
◆変数の操作:[0004:監視用Y座標]加算,変数[0006]の値
◆指定位置の地形ID取得:(V[0003],V[0004]),[0011:地形ID]
◆条件分岐:変数[0011:地形ID]が2<3マス目に壁がある
 ◆イベント処理の中断
 ◆
:分岐終了

◆条件分岐:変数[0003:監視用X座標]がV[0001]と同値
 ◆条件分岐:変数[0004:監視用Y座標]がV[0002]と同値
  ◆スイッチの操作:[0001:2ページ目起動]をONにする
  ◆イベント処理の中断
  ◆
 :分岐終了
 ◆
:分岐終了
◆注釈:4マス目
◆変数の操作:[0003:監視用X座標]加算,変数[0005]の値
◆変数の操作:[0004:監視用Y座標]加算,変数[0006]の値
◆指定位置の地形ID取得:(V[0003],V[0004]),[0011:地形ID]
◆条件分岐:変数[0011:地形ID]が2<4マス目に壁がある
 ◆イベント処理の中断
 ◆
:分岐終了

◆条件分岐:変数[0003:監視用X座標]がV[0001]と同値
 ◆条件分岐:変数[0004:監視用Y座標]がV[0002]と同値
  ◆スイッチの操作:[0001:2ページ目起動]をONにする
  ◆
 :分岐終了
 ◆
:分岐終了


▼2ページ目
イベント出現条件:スイッチ[0001:2ページ目起動]がON
イベント開始条件:イベントから触れたとき
移動タイプ:主人公に近寄る
イベント実行内容には、主人公と接触した時の設定を行ってください。



☆前方4マス×幅3マスの監視イベントに追加
監視イベントのページで紹介している
☆前方4マス×幅3マスで監視するイベントのイベントに、
壁を判断するイベントを追加します。

▼左向きの時の監視範囲
 ▼この場合は見つかりません
 

▼このような感じで調べます

 ▼壁がある先のマスは調べません
 

■マップイベント「監視イベント」
▼1ページ目
イベント出現条件:なし
イベント開始条件:定期的に並列処理する
◆変数の操作:[0001:主人公X座標]代入,主人公のX座標
◆変数の操作:[0002:主人公Y座標]代入,主人公のY座標
◆変数の操作:[0005〜0006]代入,0
◆変数の操作:[0011〜0012]代入,このイベントのX座標
◆変数の操作:[0016〜0018]代入,このイベントのY座標
◆条件分岐:このイベントが左を向いている
 ◆変数の操作:[0005:X座標±]代入,-1
 ◆変数の操作:[0016:Y座標01]加算,-1
 ◆変数の操作:[0018:Y座標03]加算,1
 ◆
:それ以外の場合
 ◆条件分岐:このイベントが右を向いている
  ◆変数の操作:[0005:X座標±]代入,1
  ◆変数の操作:[0016:Y座標01]加算,-1
  ◆変数の操作:[0018:Y座標03]加算,1
  ◆
 :それ以外の場合
  ◆変数の操作:[0002:X座標01]加算,-1
  ◆変数の操作:[0013:X座標03]加算,1
  ◆条件分岐:このイベントが上を向いている
   ◆変数の操作:[0006:Y座標±]代入,-1
   ◆
  :それ以外の場合
   ◆変数の操作:[0006:Y座標±]代入,1
   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆
:分岐終了
◆注釈:------------------------------
:  :1列目
:  : 

◆変数の操作:[0011〜0013]加算,変数[0005]の値
◆変数の操作:[0016〜0018]加算,変数[0006]の値
◆指定位置の地形ID取得:(V[0011],V[0016]),[0011:地形ID]
◆条件分岐:変数[0011:地形ID]が2<壁がある
 ◆変数の操作:[0011:X座標01]減算,変数[0005]の値
 ◆変数の操作:[0016:Y座標01]減算,変数[0006]の値
 ◆
:分岐終了
◆指定位置の地形ID取得:(V[0012],V[0017]),[0011:地形ID]
◆条件分岐:変数[0011:地形ID]が2<壁がある
 ◆変数の操作:[0012:X座標02]減算,変数[0005]の値
 ◆変数の操作:[0017:Y座標02]減算,変数[0006]の値
 ◆
:分岐終了
◆指定位置の地形ID取得:(V[0013],V[0018]),[0011:地形ID]
◆条件分岐:変数[0011:地形ID]が2<壁がある
 ◆変数の操作:[0013:X座標03]減算,変数[0005]の値
 ◆変数の操作:[0018:Y座標03]減算,変数[0006]の値
 ◆
:分岐終了

◆条件分岐:変数[0011:X座標01]がV[0001]と同値
 ◆条件分岐:変数[0016:Y座標01]がV[0002]と同値
  ◆スイッチの操作:[0001:2ページ目起動]をONにする
  ◆イベント処理の中断
  ◆
 :分岐終了
 ◆
:分岐終了
◆条件分岐:変数[0012:X座標02]がV[0001]と同値
 ◆条件分岐:変数[0017:Y座標02]がV[0002]と同値
  ◆スイッチの操作:[0001:2ページ目起動]をONにする
  ◆イベント処理の中断
  ◆
 :分岐終了
 ◆
:分岐終了
◆条件分岐:変数[0013:X座標03]がV[0001]と同値
 ◆条件分岐:変数[0018:Y座標03]がV[0002]と同値
  ◆スイッチの操作:[0001:2ページ目起動]をONにする
  ◆イベント処理の中断
  ◆
 :分岐終了
 ◆
:分岐終了
◆注釈:------------------------------
:  :2列目
:  : 

◆変数の操作:[0011〜0013]加算,変数[0005]の値
◆変数の操作:[0016〜0018]加算,変数[0006]の値
◆指定位置の地形ID取得:(V[0011],V[0016]),[0011:地形ID]
◆条件分岐:変数[0011:地形ID]が2<壁がある
 ◆変数の操作:[0011:X座標01]減算,変数[0005]の値
 ◆変数の操作:[0016:Y座標01]減算,変数[0006]の値
 ◆
:分岐終了
◆指定位置の地形ID取得:(V[0012],V[0017]),[0011:地形ID]
◆条件分岐:変数[0011:地形ID]が2<壁がある
 ◆変数の操作:[0012:X座標02]減算,変数[0005]の値
 ◆変数の操作:[0017:Y座標02]減算,変数[0006]の値
 ◆
:分岐終了
◆指定位置の地形ID取得:(V[0013],V[0018]),[0011:地形ID]
◆条件分岐:変数[0011:地形ID]が2<壁がある
 ◆変数の操作:[0013:X座標03]減算,変数[0005]の値
 ◆変数の操作:[0018:Y座標03]減算,変数[0006]の値
 ◆
:分岐終了

◆条件分岐:変数[0011:X座標01]がV[0001]と同値
 ◆条件分岐:変数[0016:Y座標01]がV[0002]と同値
  ◆スイッチの操作:[0001:2ページ目起動]をONにする
  ◆イベント処理の中断
  ◆
 :分岐終了
 ◆
:分岐終了
◆条件分岐:変数[0012:X座標02]がV[0001]と同値
 ◆条件分岐:変数[0017:Y座標02]がV[0002]と同値
  ◆スイッチの操作:[0001:2ページ目起動]をONにする
  ◆イベント処理の中断
  ◆
 :分岐終了
 ◆
:分岐終了
◆条件分岐:変数[0013:X座標03]がV[0001]と同値
 ◆条件分岐:変数[0018:Y座標03]がV[0002]と同値
  ◆スイッチの操作:[0001:2ページ目起動]をONにする
  ◆イベント処理の中断
  ◆
 :分岐終了
 ◆
:分岐終了
◆注釈:------------------------------
:  :3列目
:  : 

◆変数の操作:[0011〜0013]加算,変数[0005]の値
◆変数の操作:[0016〜0018]加算,変数[0006]の値
◆指定位置の地形ID取得:(V[0011],V[0016]),[0011:地形ID]
◆条件分岐:変数[0011:地形ID]が2<壁がある
 ◆変数の操作:[0011:X座標01]減算,変数[0005]の値
 ◆変数の操作:[0016:Y座標01]減算,変数[0006]の値
 ◆
:分岐終了
◆指定位置の地形ID取得:(V[0012],V[0017]),[0011:地形ID]
◆条件分岐:変数[0011:地形ID]が2<壁がある
 ◆変数の操作:[0012:X座標02]減算,変数[0005]の値
 ◆変数の操作:[0017:Y座標02]減算,変数[0006]の値
 ◆
:分岐終了
◆指定位置の地形ID取得:(V[0013],V[0018]),[0011:地形ID]
◆条件分岐:変数[0011:地形ID]が2<壁がある
 ◆変数の操作:[0013:X座標03]減算,変数[0005]の値
 ◆変数の操作:[0018:Y座標03]減算,変数[0006]の値
 ◆
:分岐終了

◆条件分岐:変数[0011:X座標01]がV[0001]と同値
 ◆条件分岐:変数[0016:Y座標01]がV[0002]と同値
  ◆スイッチの操作:[0001:2ページ目起動]をONにする
  ◆イベント処理の中断
  ◆
 :分岐終了
 ◆
:分岐終了
◆条件分岐:変数[0012:X座標02]がV[0001]と同値
 ◆条件分岐:変数[0017:Y座標02]がV[0002]と同値
  ◆スイッチの操作:[0001:2ページ目起動]をONにする
  ◆イベント処理の中断
  ◆
 :分岐終了
 ◆
:分岐終了
◆条件分岐:変数[0013:X座標03]がV[0001]と同値
 ◆条件分岐:変数[0018:Y座標03]がV[0002]と同値
  ◆スイッチの操作:[0001:2ページ目起動]をONにする
  ◆イベント処理の中断
  ◆
 :分岐終了
 ◆
:分岐終了
◆注釈:------------------------------
:  :4列目
:  : 

◆変数の操作:[0011〜0013]加算,変数[0005]の値
◆変数の操作:[0016〜0018]加算,変数[0006]の値
◆指定位置の地形ID取得:(V[0011],V[0016]),[0011:地形ID]
◆条件分岐:変数[0011:地形ID]が2<壁がある
 ◆変数の操作:[0011:X座標01]減算,変数[0005]の値
 ◆変数の操作:[0016:Y座標01]減算,変数[0006]の値
 ◆
:分岐終了
◆指定位置の地形ID取得:(V[0012],V[0017]),[0011:地形ID]
◆条件分岐:変数[0011:地形ID]が2<壁がある
 ◆変数の操作:[0012:X座標02]減算,変数[0005]の値
 ◆変数の操作:[0017:Y座標02]減算,変数[0006]の値
 ◆
:分岐終了
◆指定位置の地形ID取得:(V[0013],V[0018]),[0011:地形ID]
◆条件分岐:変数[0011:地形ID]が2<壁がある
 ◆変数の操作:[0013:X座標03]減算,変数[0005]の値
 ◆変数の操作:[0018:Y座標03]減算,変数[0006]の値
 ◆
:分岐終了

◆条件分岐:変数[0011:X座標01]がV[0001]と同値
 ◆条件分岐:変数[0006:Y座標01]がV[0002]と同値
  ◆スイッチの操作:[0001:2ページ目起動]をONにする
  ◆イベント処理の中断
  ◆
 :分岐終了
 ◆
:分岐終了
◆条件分岐:変数[0004:X座標02]がV[0001]と同値
 ◆条件分岐:変数[0017:Y座標02]がV[0002]と同値
  ◆スイッチの操作:[0001:2ページ目起動]をONにする
  ◆イベント処理の中断
  ◆
 :分岐終了
 ◆
:分岐終了
◆条件分岐:変数[0013:X座標03]がV[0001]と同値
 ◆条件分岐:変数[0018:Y座標03]がV[0002]と同値
  ◆スイッチの操作:[0001:2ページ目起動]をONにする
  ◆イベント処理の中断
  ◆
 :分岐終了
 ◆
:分岐終了


▼2ページ目
イベント出現条件:スイッチ[0001:2ページ目起動]がON
イベント開始条件:イベントから触れたとき
移動タイプ:主人公に近寄る
イベント実行内容には、主人公と接触した時の設定を行ってください。



◎関連ページ
 ●監視イベント
 ○壁を判断する監視イベント
 ┗
○主人公がいたマスまで移動する


YADOTトップ  このサイトは何?  気紛れな空間へ戻る  メール