RPGツクール2000/システム
敵イベントの位置を表示するレーダーシステム
■マップのループに対応させる
(更新:2007/05/26)


マップイベントの位置を表示するレーダーシステムの作り方を紹介します。
今回は主人公を中心に上下左右20マス以内にいるマップイベントを表示する
正方形のレーダー表示システムの中に、
マップのループに対応させるイベント設定を追加します。




このページは続きとなっているページです
敵のイベント位置を表示するレーダーシステムの基礎ページをご覧の上で
このページをご覧ください。
【敵のイベント位置を表示するレーダーシステムのページを開く】



☆画像の準備



 中心から上下左右に21ピクセルの所に枠があるレーダーの下地と、
 マップイベントの位置を示す画像を用意して、
 素材管理の「Picture」のフォルダへインポートしてください。

 ※この画像の上で右クリック名前を付けて画像を保存を選択して保存し、
  この画像をインポートして使っても問題ありません。


 ※左の画像は拡大して表示しています。
  実際にはもっと小さい画像です。


  
☆変数
変数の番号使用内容の一覧表です。

変数
番号 名前 使用内容
0001 現在のマップID 現在のマップIDを設定。
0002 表示マップID ピクチャーを表示したマップIDを記憶。
0005 マップの幅X マップの横マス数を設定。
0006 マップの幅Y マップの縦マス数を設定。
0007 ループ:代入 ループした座標を代入する時に使用。
0008 ループ:比較 ループした方が距離が短いかを確認する時に使用。
 
0021 X座標01 敵01のX座標を設定。
0022 X座標02 敵02のX座標を設定。
 
0031 Y座標01 敵01のY座標を設定。
0032 Y座標02 敵02のY座標を設定。
 
0041 表示範囲X01 敵01のレーダーのX表示位置を設定。
0042 表示範囲X02 敵02のレーダーのX表示位置を設定。
 
0051 表示範囲Y01 敵01のレーダーのY表示位置を設定。
0052 表示範囲Y02 敵02のレーダーのY表示位置を設定。



☆イベントの作成
敵のイベント位置を表示するレーダーシステムのイベント設定に、
マップのループに対応するイベントを追加設定します。

このイベントでは、マップの縦横の幅を設定するイベントが必要になりますので、
必ずマップイベントとして作成し、マップの右下へ設定してください。

■マップイベント「レーダー処理」
イベント開始条件:定期的に並列処理する
◆変数の操作:[0001:マップID]代入,主人公のマップID
◆条件分岐:変数[0002:前のマップID]がV[0001]以外
 ◆変数の操作:[0002:前のマップID]代入,主人公のマップID
 ◆ピクチャーの表示:1,枠(290,30)(透明度:0%)
 ◆ピクチャーの表示:2,位置表示(160,120)(透明度:100%)
 ◆ピクチャーの表示:3,位置表示(160,120)(透明度:100%)
 ◆
:分岐終了
◆変数の操作:[0021:X座標01]代入,イベント01のX座標
◆変数の操作:[0022:X座標02]代入,イベント02のX座標
◆変数の操作:[0031:Y座標01]代入,イベント01のY座標
◆変数の操作:[0032:Y座標02]代入,イベント02のY座標
◆変数の操作:[0021〜0030]減算,主人公のX座標
◆変数の操作:[0031〜0040]減算,主人公のY座標
◆変数の操作:[0005:マップの幅X]代入,このイベントのX座標
◆変数の操作:[0006:マップの幅Y]代入,このイベントのY座標
◆変数の操作:[0005〜0006]加算,1
◆変数の操作:[0007〜0008]代入,変数[0021]の値
◆条件分岐:変数[0007:ループ:代入]が-1以下<主人公より左に居る場合
 ◆変数の操作:[0007〜0008]加算,変数[0005]の値
 ◆変数の操作:[0008:ループ:比較]乗算,-1
 ◆条件分岐:変数[0008:ループ:比較]がV[0021]以上<ループした方が主人公に近い場合
  ◆変数の操作:[0021:X座標01]代入,変数[0007]の値
  ◆
 :分岐終了
 ◆
:それ以外の場合<主人公と同じX位置か、主人公より右に居る場合
 ◆変数の操作:[0007〜0008]減算,変数[0005]の値
 ◆変数の操作:[0008:ループ:比較]乗算,-1
 ◆条件分岐:変数[0008:ループ:比較]がV[0021]以下<ループした方が主人公に近い場合
  ◆変数の操作:[0021:X座標01]代入,変数[0007]の値
  ◆
 :分岐終了
 ◆
:分岐終了
◆変数の操作:[0007〜0008]代入,変数[0031]の値
◆条件分岐:変数[0007:ループ:代入]が-1以下<主人公より上に居る場合
 ◆変数の操作:[0007〜0008]加算,変数[0006]の値
 ◆変数の操作:[0008:ループ:比較]乗算,-1
 ◆条件分岐:変数[0008:ループ:比較]がV[0031]以上<ループした方が主人公に近い場合
  ◆変数の操作:[0031:Y座標01]代入,変数[0007]の値
  ◆
 :分岐終了
 ◆
:それ以外の場合<主人公と同じY位置か、主人公より下に居る場合
 ◆変数の操作:[0007〜0008]減算,変数[0006]の値
 ◆変数の操作:[0008:ループ:比較]乗算,-1
 ◆条件分岐:変数[0008:ループ:比較]がV[0031]以下<ループした方が主人公に近い場合
  ◆変数の操作:[0031:Y座標01]代入,変数[0007]の値
  ◆
 :分岐終了
 ◆
:分岐終了
◆変数の操作:[0007〜0008]代入,変数[0022]の値
◆条件分岐:変数[0007:ループ:代入]が-1以下<主人公より左に居る場合
 ◆変数の操作:[0007〜0008]加算,変数[0005]の値
 ◆変数の操作:[0008:ループ:比較]乗算,-1
 ◆条件分岐:変数[0008:ループ:比較]がV[0022]以上<ループした方が主人公に近い場合
  ◆変数の操作:[0022:X座標02]代入,変数[0007]の値
  ◆
 :分岐終了
 ◆
:それ以外の場合<主人公と同じX位置か、主人公より右に居る場合
 ◆変数の操作:[0007〜0008]減算,変数[0005]の値
 ◆変数の操作:[0008:ループ:比較]乗算,-1
 ◆条件分岐:変数[0008:ループ:比較]がV[0022]以下<ループした方が主人公に近い場合
  ◆変数の操作:[0022:X座標02]代入,変数[0007]の値
  ◆
 :分岐終了
 ◆
:分岐終了
◆変数の操作:[0007〜0008]代入,変数[0032]の値
◆条件分岐:変数[0007:ループ:代入]が-1以下<主人公より上に居る場合
 ◆変数の操作:[0007〜0008]加算,変数[0006]の値
 ◆変数の操作:[0008:ループ:比較]乗算,-1
 ◆条件分岐:変数[0008:ループ:比較]がV[0032]以上<ループした方が主人公に近い場合
  ◆変数の操作:[0032:Y座標02]代入,変数[0007]の値
  ◆
 :分岐終了
 ◆
:それ以外の場合<主人公と同じY位置か、主人公より下に居る場合
 ◆変数の操作:[0007〜0008]減算,変数[0006]の値
 ◆変数の操作:[0008:ループ:比較]乗算,-1
 ◆条件分岐:変数[0008:ループ:比較]がV[0032]以下<ループした方が主人公に近い場合
  ◆変数の操作:[0032:Y座標02]代入,変数[0007]の値
  ◆
 :分岐終了
 ◆
:分岐終了

◆変数の操作:[0041:表示範囲X01]代入,変数[0021]の値
◆変数の操作:[0042:表示範囲X02]代入,変数[0022]の値
◆変数の操作:[0051:表示範囲Y01]代入,変数[0031]の値
◆変数の操作:[0052:表示範囲Y02]代入,変数[0032]の値
◆変数の操作:[0041〜0060]除算,21
◆変数の操作:[0021〜0030]加算,290
◆変数の操作:[0031〜0040]加算,30
◆ピクチャーの移動:2,(160,120),0.0秒(透明度:100%)
◆ピクチャーの移動:3,(160,120),0.0秒(透明度:100%)
◆条件分岐:変数[0041:表示範囲X01]が0
 ◆条件分岐:変数[0051:表示範囲Y01]が0
  ◆ピクチャーの移動:2,(V[0021],V[0031]),0.0秒(透明度:0%)
  ◆
 :分岐終了
 ◆
:分岐終了
◆条件分岐:変数[0042:表示範囲X02]が0
 ◆条件分岐:変数[0052:表示範囲Y02]が0
  ◆ピクチャーの移動:3,(V[0022],V[0032]),0.0秒(透明度:0%)
  ◆
 :分岐終了
 ◆
:分岐終了


以上で設定完了です。



☆補足
マップイベントがマップの右下へ置けない場合は、
◆変数の操作:[0005:マップの幅X]代入,このイベントのX座標
◆変数の操作:[0006:マップの幅Y]代入,このイベントのY座標
◆変数の操作:[0005〜0006]加算,1

の設定を「マップの横マス=100マス」「マップの縦マス=60マス」の場合は、
◆変数の操作:[0005:マップの幅X]代入,100
◆変数の操作:[0006:マップの幅Y]代入,60

とマップの幅の数値を定数として設定してください。



◎関連ページ
 ●敵のイベント位置を表示するレーダーシステム
 ○円形のレーダーを表示させる
 ┗
○マップのループに対応させる


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