プレイヤーから遠ざかるようにしていたイベントが何故か近づいてきます
Posted: 2020年10月25日(日) 18:10
現在鬼ごっこゲームを作っています。
ゲームの内容は逃げるキャラクター(以下ターゲット)を追いかけながらダッシュしたり、障害物をジャンプで避けたりしながら捕まえるというものです。
そこでターゲット自身がジャンプで障害物を避けられるようなイベントを設置したのですが、稀にジャンプした後に逆にプレイヤーに近づくようになってしまいます。
以下、システムについて解説させていただきます。
まず、ターゲットは通常時はプレイヤーに近づきます。そして、範囲内に入ったらスイッチ「見つかった」がONになり、逃げます。これにはマンカインド様のプレイヤー探索プラグインを使用しています。
http://mankind-games.blogspot.com/2016/ ... ost_8.html

↓

逃げる時のルート設定は「遠ざかる」と「!this.canPass(this.x, this.y, this.direction()) ? this.moveRandom() : null;」です。後者はT字路や行き止まりに入って動けなくなった時に、ランダムな方向に移動するというスクリプトです。

障害物をジャンプで避けるイベントの流れは以下の通りです。


<解説>
現在の座標を変数で取得する
↓
ターゲットが向いてる方角に変数をズラす
↓
コモンイベント:対象者取得により変数によって指定した座標のイベントのメモ欄に[対象者]と書かれているか調べ、書かれていればスイッチ「目の前に対象者」をONにする(変な方角にジャンプしないよう、念のため縦と横でX、Yと分けてあります)

↓
「目の前に対象者」がONになっていれば、向いていた方角にジャンプして障害物を避け、一歩進む
特に以下の状況だと必ず近づきます。
ターゲットに見つからない場所で待ち伏せ

ターゲットが障害物を飛び越えたところでプレイヤーに気づき逃げる

障害物を飛び越えるが、

何故か方向転換してプレイヤー側に移動


その後障害物が無いのに何故か上方向にジャンプして壁にめり込む(この時の変数を調べると下から二番目の鉄骨の位置を示している)

使用プラグインは以下の通りです
・TMMapHpGauge.js
・TemplateEvent.js
・TMRegionPassable.js
・MKR_PlayerSensor.js
原因はいくらか調べましたが、
・どこかで「見つかった」スイッチがOFFになったのでは→F9で確認したところONだった
・マップをループ設定にしていたからでは→ループ設定を無くしても起こった
・プレイヤーがダッシュしたりジャンプする際何かが起こっているのでは→どちらもできないようにしても何も変わらなかった
といった感じでした。
解答お待ちしております。
ゲームの内容は逃げるキャラクター(以下ターゲット)を追いかけながらダッシュしたり、障害物をジャンプで避けたりしながら捕まえるというものです。
そこでターゲット自身がジャンプで障害物を避けられるようなイベントを設置したのですが、稀にジャンプした後に逆にプレイヤーに近づくようになってしまいます。
以下、システムについて解説させていただきます。
まず、ターゲットは通常時はプレイヤーに近づきます。そして、範囲内に入ったらスイッチ「見つかった」がONになり、逃げます。これにはマンカインド様のプレイヤー探索プラグインを使用しています。
http://mankind-games.blogspot.com/2016/ ... ost_8.html

↓

逃げる時のルート設定は「遠ざかる」と「!this.canPass(this.x, this.y, this.direction()) ? this.moveRandom() : null;」です。後者はT字路や行き止まりに入って動けなくなった時に、ランダムな方向に移動するというスクリプトです。

障害物をジャンプで避けるイベントの流れは以下の通りです。


<解説>
現在の座標を変数で取得する
↓
ターゲットが向いてる方角に変数をズラす
↓
コモンイベント:対象者取得により変数によって指定した座標のイベントのメモ欄に[対象者]と書かれているか調べ、書かれていればスイッチ「目の前に対象者」をONにする(変な方角にジャンプしないよう、念のため縦と横でX、Yと分けてあります)

↓
「目の前に対象者」がONになっていれば、向いていた方角にジャンプして障害物を避け、一歩進む
特に以下の状況だと必ず近づきます。
ターゲットに見つからない場所で待ち伏せ

ターゲットが障害物を飛び越えたところでプレイヤーに気づき逃げる

障害物を飛び越えるが、

何故か方向転換してプレイヤー側に移動


その後障害物が無いのに何故か上方向にジャンプして壁にめり込む(この時の変数を調べると下から二番目の鉄骨の位置を示している)

使用プラグインは以下の通りです
・TMMapHpGauge.js
・TemplateEvent.js
・TMRegionPassable.js
・MKR_PlayerSensor.js
原因はいくらか調べましたが、
・どこかで「見つかった」スイッチがOFFになったのでは→F9で確認したところONだった
・マップをループ設定にしていたからでは→ループ設定を無くしても起こった
・プレイヤーがダッシュしたりジャンプする際何かが起こっているのでは→どちらもできないようにしても何も変わらなかった
といった感じでした。
解答お待ちしております。