障害物を回りこんで回避しながら目標座標に向かうパスを生成します
mp_potential_path(path, xgoal, ygoal, stepsize, factor, checkall)
この関数はインスタンスの現在座標から指定の座標("xgoal", "ygoal"引数)までのパスを生成します。途中に障害物(全てのインスタンスまたはsolid)がある場合、これを回避しようとしながら移動します。mp_potential_step()と似ており、回避運動のパラメータはmp_potential_settings()で設定できます。
この関数を呼び出すことで"path"に設定されているパスは上書きされます。もしも目標座標に到達していたらtrueを返します。
パスの生成にあたって"factore"変数には「1」より大きい値を設定する必要があります。それは"factor"よりも短いパスを見つけられない場合、関数は停止し失敗を報告するためです。
"factor"には通常「4」で充分ですが、それでも長い回り道をする場合には失敗する可能性があります。パスの作成に失敗した場合、目標座標には届きませんが近似のパスを作成します。
この関数はインスタンスを移動させずに、パスを生成するのみです。
path = path_add(); mp_potential_path(path, obj_Player.x, obj_Player.y, 3, 4, 0); path_start(path, 3, 0, 0);
上記コードは"path"変数にパスを生成します。"obj_Player"の座標に向かって移動し、途中に障害物があれば回避します。1Stepごとの移動の速さは「3」となります。