【解決済み】イベント座標取得のスクリプト

返信する
おおたけ
記事: 14
登録日時: 2024年8月11日(日) 20:06

【解決済み】イベント座標取得のスクリプト

投稿記事 by おおたけ »

◆条件分岐:スクリプト:$gameMap.event(1).x -2 <= $gamePlayer.x <= $gameMap.event(1).x +2
◆条件分岐:スクリプト:this.character(-1).isMoving()
◆セルフスイッチの操作:A = ON

:分岐終了

:分岐終了

このスクリプトでID001のイベントのX軸プラマイ2マスで動くとセルフスイッチAをON...にならず
プレイヤーが範囲外で動いても条件をパスしてしまうのですがどこが間違ってますでしょうか…? :?

あと、$gameMap.event(1).x は this.x で代わりにならなかったのですがなぜでしょう :roll:
イベントコマンド内のthisはイベントそのものを指せる...わけではないのでしょうか :cry:


初歩的なことなのにとんちんかんなこと言ってると思いますが
教えてください。よろしくお願いします(◞‸◟)
最後に編集したユーザー おおたけ [ 2025年1月17日(金) 13:53 ], 累計 1 回
chro
記事: 107
登録日時: 2021年2月14日(日) 11:26

Re: イベント座標取得のスクリプト

投稿記事 by chro »

$gameMap.event(1).x は this.x で代わりにならなかったのですがなぜでしょう
thisは、Game_Interpreterつまりイベントコマンドを実行する部分になります。
this.character(0)で、0はこのイベントを指します。
$gameMap.event(1).x -2 <= $gamePlayer.x <= $gameMap.event(1).x +2
【$gameMap.event(1).x -2 <= $gamePlayer.x 】で判定をし、true /falseになります。
その後、【true / false <= $gameMap.event(1).x +2】という条件式になり、
trueは1、falseは0へ数値型へ変換され、判定されます。
ですので常に、0以上である条件を満たします。

複数の条件を指定する場合は、&&でaかつbの時にします。

コード: 全て選択

this.character(0).x - 2 <= $gamePlayer.x && this.character(0).x + 2 >= $gamePlayer.x

イベントコマンドのみで座標の判定を行う事が可能です。

変数の操作で、このイベントのマップXからプレイヤーのマップXを引いた数値が、
-2から2の範囲であるか判定をします。

コード: 全て選択

◆変数の操作:#0013 イベントX = このイベントのマップX
◆変数の操作:#0013 イベントX -= プレイヤーのマップX
◆条件分岐:イベントX ≥ -2
  ◆条件分岐:イベントX ≤ 2
    ◆条件分岐:スクリプト:this.character(-1).isMoving()
      ◆セルフスイッチの操作:A = ON
      ◆
    :分岐終了
    ◆
  :分岐終了
  ◆
:分岐終了
event_playerx.jpg
おおたけ
記事: 14
登録日時: 2024年8月11日(日) 20:06

Re: イベント座標取得のスクリプト

投稿記事 by おおたけ »

できました!!!
学びになりましたありがとうございます :D
返信する

“MZ:質問”に戻る