$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
◆
:分岐終了
◆
:分岐終了
◆
:分岐終了