お世話になっております。
一つ質問させてください。
「nのIDのイベントがプレイヤーと接触しているかどうか」を
条件分岐に設定したいのですが、
設定する方法はありますでしょうか?
別のイベントから並列処理で、上記のような条件を作りたいと思っています。
nのIDは並列処理で別のイベント内容を組み込んでいるので
イベントのトリガーの「プレイヤーから接触」「イベントから接触」は、使うことができません。
どうかお力添えいただけますでしょうか。よろしくお願いいたします。
【解決済み】接触しているかどうかを調べたい
【解決済み】接触しているかどうかを調べたい
最後に編集したユーザー RMwool [ 2020年9月13日(日) 15:02 ], 累計 1 回
Re: 接触しているかどうかを調べたい
下記を並列実行で動かすと、
「イベントが主人公の上下左右の座標にいた場合に実行」
みたいなことができますが、
それでお望みの挙動になるでしょうか。
(もっとスマートでうまいやり方があるかも……)
◆注釈:主人公の上
◆変数の操作:#0001 判定座標X = プレイヤーのマップX
◆変数の操作:#0002 判定座標Y = プレイヤーのマップY
◆変数の操作:#0002 判定座標Y -= 1
◆指定位置の情報取得:接触イベントID, イベントID, ({判定座標X},{判定座標Y})
◆条件分岐:接触イベントID > 0
◆スイッチの操作:#0001 イベント接触判定 = ON
◆
:分岐終了
◆注釈:主人公の右
◆変数の操作:#0001 判定座標X = プレイヤーのマップX
◆変数の操作:#0001 判定座標X += 1
◆変数の操作:#0002 判定座標Y = プレイヤーのマップY
◆指定位置の情報取得:接触イベントID, イベントID, ({判定座標X},{判定座標Y})
◆条件分岐:接触イベントID > 0
◆スイッチの操作:#0001 イベント接触判定 = ON
◆
:分岐終了
※主人公の下、左は省略します。
ちなみに下はY+1、左はX-1です。
◆注釈:接触の結果
◆条件分岐:イベント接触判定がON
ここに接触したときの処理を記述
:分岐終了
「イベントが主人公の上下左右の座標にいた場合に実行」
みたいなことができますが、
それでお望みの挙動になるでしょうか。
(もっとスマートでうまいやり方があるかも……)
◆注釈:主人公の上
◆変数の操作:#0001 判定座標X = プレイヤーのマップX
◆変数の操作:#0002 判定座標Y = プレイヤーのマップY
◆変数の操作:#0002 判定座標Y -= 1
◆指定位置の情報取得:接触イベントID, イベントID, ({判定座標X},{判定座標Y})
◆条件分岐:接触イベントID > 0
◆スイッチの操作:#0001 イベント接触判定 = ON
◆
:分岐終了
◆注釈:主人公の右
◆変数の操作:#0001 判定座標X = プレイヤーのマップX
◆変数の操作:#0001 判定座標X += 1
◆変数の操作:#0002 判定座標Y = プレイヤーのマップY
◆指定位置の情報取得:接触イベントID, イベントID, ({判定座標X},{判定座標Y})
◆条件分岐:接触イベントID > 0
◆スイッチの操作:#0001 イベント接触判定 = ON
◆
:分岐終了
※主人公の下、左は省略します。
ちなみに下はY+1、左はX-1です。
◆注釈:接触の結果
◆条件分岐:イベント接触判定がON
ここに接触したときの処理を記述
:分岐終了
Re: 接触しているかどうかを調べたい
論理イヌ様
返信ありがとうございます。
導入してみたところ、希望と近い動作が実現できました。
接触ではなく隣接している場合でもイベントが動作してしまう懸念があったため、
プレイヤーが動いているかどうかを調べる、$gamePlayer.isMoving()の条件を追加し、
イベントを動作させないためのリージョンを用意して、プレイヤーがリージョン内にいる場合はイベントが動かないようにしたところ、うまく動作しました。
無事にイベントが組めました。助かりました。
今回の件は解決とさせていただきます。ありがとうございました。
返信ありがとうございます。
導入してみたところ、希望と近い動作が実現できました。
接触ではなく隣接している場合でもイベントが動作してしまう懸念があったため、
プレイヤーが動いているかどうかを調べる、$gamePlayer.isMoving()の条件を追加し、
イベントを動作させないためのリージョンを用意して、プレイヤーがリージョン内にいる場合はイベントが動かないようにしたところ、うまく動作しました。
無事にイベントが組めました。助かりました。
今回の件は解決とさせていただきます。ありがとうございました。