RPGツクール2000/システム【サイトトップへ戻る】
■目標地点を矢印で表示
(更新:2020/07/05)
目標地点のマスを矢印で示すシステムを作成します。
▼目標地点がゲーム画面の外にある場合は、
目標地点の方向へ矢印を表示します。
■画像の準備
8方向の矢印の画像を用意して、素材管理の「Picture」にインポートしてください。
※上の画像は2倍に拡大して表示しているため、実際にはもっと小さい画像です。
【上の画像をまとめてダウンロードする】
▲トップへ戻る▲
■矢印表示の設定
目標地点を表示する矢印は、ゲーム画面上の目標地点が表示されている場合は、
の矢印を目標地点の上に表示して、目標地点を示します。
目標地点がゲーム画面の外にある場合は、
変数[0005:矢印表示種類]へ表示する矢印の種類を設定します。
変数[0005:矢印表示種類]の値の設定は、以下の通りに設定します。
目標のX座標が主人公より-10以下:変数の値「+1」
目標のX座標が主人公より+11以上:変数の値「+2」
目標のY座標が主人公より-7以下:変数の値「+3」
目標のY座標が主人公より+8以上:変数の値「+6」 |
この場合、目標地点が左下にある場合は、変数には「+1」と「+6」が設定され、
変数[0005:矢印表示種類]には「7」が設定されます。
▲トップへ戻る▲
■イベントの作成
目標地点にマップイベントを設定してください。
※目標地点のマップイベントの設定はどんな設定でも構いません。
目標地点のマップイベントとは別に、
矢印を表示するためのマップイベントを設定してください。
この矢印を表示するイベントは、以下の通りに設定します。
■マップイベント
イベント開始条件:定期的に並列処理する
◆変数の操作:[0001:X座標]代入,目標のイベントのX座標
◆変数の操作:[0002:Y座標]代入,目標のイベントのY座標
◆変数の操作:[0001:X座標]減算,主人公のX座標<減算する事で主人公との距離を出します
◆変数の操作:[0002:Y座標]減算,主人公のY座標<減算する事で主人公との距離を出します
◆変数の操作:[0003:表示X]代入,目標のイベントの画面X
◆変数の操作:[0004:表示Y]代入,目標のイベントの画面Y
◆変数の操作:[0004:表示Y]減算,8<矢印がマスの中央へ来るように調整
◆条件分岐:変数[0001:X座標]が-10以下(オプション:ON)<目標地点がゲーム画面の左外にある
◆変数の操作:[0003:表示X]代入,8<ゲーム画面の一番左に矢印を表示する
◆変数の操作:[0005:矢印表示種類]代入,1
◆
:それ以外の場合<目標地点はゲーム画面より左にはない
◆条件分岐:変数[0001:X座標]が11以上(オプション:ON)<目標地点がゲーム画面の右外にある
◆変数の操作:[0003:表示X]代入,312<ゲーム画面の一番右に矢印を表示する
◆変数の操作:[0005:矢印表示種類]代入,2
◆
:それ以外の場合<目標地点がゲーム画面内にある
◆変数の操作:[0005:矢印表示種類]代入,0
◆
:分岐終了
◆
:分岐終了
◆条件分岐:変数[0002:Y座標]が-7以下(オプション:ON)<目標地点がゲーム画面の上外にある
◆変数の操作:[0004:表示Y]代入,8<ゲーム画面の一番上に矢印を表示する
◆変数の操作:[0005:矢印表示種類]加算,3
◆
:それ以外の場合<目標地点はゲーム画面より上にはない
◆条件分岐:変数[0002:Y座標]が8以上<目標地点がゲーム画面の下外にある
◆変数の操作:[0004:表示Y]代入,232<ゲーム画面の一番下に矢印を表示する
◆変数の操作:[0005:矢印表示種類]加算,6
◆
:分岐終了
◆
:分岐終了
◆条件分岐:変数[0005:矢印表示種類]が0<ゲーム画面内に目標地点がある
◆変数の操作:[0004:表示Y]減算,16<目標の上に矢印が表示されるようにします
◆変数の操作:[0005:矢印表示種類]代入,6<の矢印を表示するようにします
◆
:分岐終了
◆条件分岐:変数[0006:前の矢印]がV[0005]以外<別の矢印を表示する
◆変数の操作:[0006:前の矢印]代入,変数[0005]の値
◆条件分岐:変数[0005:矢印表示種類]が1
◆ピクチャーの表示:1,左の矢印,(V[0003],V[0004])
◆
:分岐終了
◆条件分岐:変数[0005:矢印表示種類]が2
◆ピクチャーの表示:1,右の矢印,(V[0003],V[0004])
◆
:分岐終了
◆条件分岐:変数[0005:矢印表示種類]が3
◆ピクチャーの表示:1,上の矢印,(V[0003],V[0004])
◆
:分岐終了
◆条件分岐:変数[0005:矢印表示種類]が4
◆ピクチャーの表示:1,左上の矢印,(V[0003],V[0004])
◆
:分岐終了
◆条件分岐:変数[0005:矢印表示種類]が5
◆ピクチャーの表示:1,右上の矢印,(V[0003],V[0004])
◆
:分岐終了
◆条件分岐:変数[0005:矢印表示種類]が6
◆ピクチャーの表示:1,下の矢印,(V[0003],V[0004])
◆
:分岐終了
◆条件分岐:変数[0005:矢印表示種類]が7
◆ピクチャーの表示:1,左下の矢印,(V[0003],V[0004])
◆
:分岐終了
◆条件分岐:変数[0005:矢印表示種類]が8
◆ピクチャーの表示:1,右下の矢印,(V[0003],V[0004])
◆
:分岐終了
◆
:分岐終了
◆ピクチャーの移動:1,(V[0003],V[0004]),0.0秒
◆ |
以上で設定完了です。
別のマップから移動して来る時には…
を実行してください。
▲トップへ戻る▲
■マップのループに対応させる
上の設定では、マップのループには対応していません。
もしもマップのループに対応させる場合は、以下の設定を追加する必要があります。
目標地点のマップイベントはそのままでも良いですが、
矢印を表示するためのマップイベントは、マップの右下のマスへ設定してください。
■マップイベント
イベント開始条件:定期的に並列処理する
◆変数の操作:[0001:X座標]代入,目標のイベントのX座標
◆変数の操作:[0002:Y座標]代入,目標のイベントのY座標
◆変数の操作:[0001:X座標]減算,主人公のX座標
◆変数の操作:[0002:Y座標]減算,主人公のY座標
◆変数の操作:[0007:マップの幅X]代入,このイベントのX座標
◆変数の操作:[0008:マップの幅Y]代入,このイベントのY座標
◆変数の操作:[0007〜0008]加算,1
◆変数の操作:[0009〜0010]代入,変数[0001]の値
◆条件分岐:変数[0009:ループ:代入]が-1以下<主人公より左に居る場合
◆変数の操作:[0009〜0010]加算,変数[0007]の値
◆変数の操作:[0010:ループ:比較]乗算,-1
◆条件分岐:変数[0010:ループ:比較]がV[0001]以上<ループした方が主人公に近い場合
◆変数の操作:[0001:X座標]代入,変数[0009]の値
◆
:分岐終了
◆
:それ以外の場合<主人公と同じX位置か、主人公より右に居る場合
◆変数の操作:[0009〜0010]減算,変数[0007]の値
◆変数の操作:[0010:ループ:比較]乗算,-1
◆条件分岐:変数[0010:ループ:比較]がV[0001]以下<ループした方が主人公に近い場合
◆変数の操作:[0001:X座標]代入,変数[0009]の値
◆
:分岐終了
◆
:分岐終了
◆変数の操作:[0009〜0010]代入,変数[0002]の値
◆条件分岐:変数[0009:ループ:代入]が-1以下<主人公より上に居る場合
◆変数の操作:[0009〜0010]加算,変数[0008]の値
◆変数の操作:[0010:ループ:比較]乗算,-1
◆条件分岐:変数[0010:ループ:比較]がV[0002]以上<ループした方が主人公に近い場合
◆変数の操作:[0002:Y座標]代入,変数[0009]の値
◆
:分岐終了
◆
:それ以外の場合<主人公と同じY位置か、主人公より下に居る場合
◆変数の操作:[0009〜0010]減算,変数[0008]の値
◆変数の操作:[0010:ループ:比較]乗算,-1
◆条件分岐:変数[0010:ループ:比較]がV[0002]以下<ループした方が主人公に近い場合
◆変数の操作:[0002:Y座標]代入,変数[0009]の値
◆
:分岐終了
◆
:分岐終了
◆変数の操作:[0003:表示X]代入,目標のイベントの画面X
◆変数の操作:[0004:表示Y]代入,目標のイベントの画面Y
◆変数の操作:[0004:表示Y]減算,8
◆条件分岐:変数[0001:X座標]が-10以下
◆変数の操作:[0003:表示X]代入,8
◆変数の操作:[0005:矢印表示種類]代入,1
◆
:それ以外の場合
◆条件分岐:変数[0001:X座標]が11以上
◆変数の操作:[0003:表示X]代入,312
◆変数の操作:[0005:矢印表示種類]代入,2
◆
:それ以外の場合
◆変数の操作:[0005:矢印表示種類]代入,0
◆
:分岐終了
◆
:分岐終了
◆条件分岐:変数[0002:Y座標]が-7以下
◆変数の操作:[0004:表示Y]代入,8
◆変数の操作:[0005:矢印表示種類]加算,3
◆
:それ以外の場合
◆条件分岐:変数[0002:Y座標]が8以上
◆変数の操作:[0004:表示Y]代入,232
◆変数の操作:[0005:矢印表示種類]加算,6
◆
:分岐終了
◆
:分岐終了
◆条件分岐:変数[0005:矢印表示種類]が0
◆変数の操作:[0004:表示Y]減算,16
◆変数の操作:[0005:矢印表示種類]代入,6
◆
:分岐終了
◆条件分岐:変数[0006:前の矢印]がV[0005]以外
◆変数の操作:[0006:前の矢印]代入,変数[0005]の値
◆条件分岐:変数[0005:矢印表示種類]が1
◆ピクチャーの表示:1,左の矢印,(V[0003],V[0004])
◆
:分岐終了
◆条件分岐:変数[0005:矢印表示種類]が2
◆ピクチャーの表示:1,右の矢印,(V[0003],V[0004])
◆
:分岐終了
◆条件分岐:変数[0005:矢印表示種類]が3
◆ピクチャーの表示:1,上の矢印,(V[0003],V[0004])
◆
:分岐終了
◆条件分岐:変数[0005:矢印表示種類]が4
◆ピクチャーの表示:1,左上の矢印,(V[0003],V[0004])
◆
:分岐終了
◆条件分岐:変数[0005:矢印表示種類]が5
◆ピクチャーの表示:1,右上の矢印,(V[0003],V[0004])
◆
:分岐終了
◆条件分岐:変数[0005:矢印表示種類]が6
◆ピクチャーの表示:1,下の矢印,(V[0003],V[0004])
◆
:分岐終了
◆条件分岐:変数[0005:矢印表示種類]が7
◆ピクチャーの表示:1,左下の矢印,(V[0003],V[0004])
◆
:分岐終了
◆条件分岐:変数[0005:矢印表示種類]が8
◆ピクチャーの表示:1,右下の矢印,(V[0003],V[0004])
◆
:分岐終了
◆
:分岐終了
◆ピクチャーの移動:1,(V[0003],V[0004]),0.0秒
◆ |
以上で設定完了です。
マップイベントがマップの右下へ置けない場合は…
◆変数の操作:[0007:マップの幅X]代入,このイベントのX座標
◆変数の操作:[0008:マップの幅Y]代入,このイベントのY座標
◆変数の操作:[0007〜0008]加算,1 |
の設定を「マップのXマス=100マス、Yマス=60マス」の場合は…
◆変数の操作:[0007:マップの幅X]代入,100
◆変数の操作:[0008:マップの幅Y]代入,60 |
のように変えてください。
▲トップへ戻る▲ |