ページ 11

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

Posted: 2025年1月16日(木) 20:22
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:


初歩的なことなのにとんちんかんなこと言ってると思いますが
教えてください。よろしくお願いします(◞‸◟)

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

Posted: 2025年1月16日(木) 21:31
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

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

Posted: 2025年1月17日(金) 13:52
by おおたけ
できました!!!
学びになりましたありがとうございます :D