mp_potential_path

此函数计算实例从其当前位置和方向到xgoal ygoal参数指定的位置的路径。它使用指定的步长,同时尝试避免与所有实例或仅与那些标记为固体的。与函数mp_potential_step()一样,它使用潜在的字段步骤来完成此操作,并且可以通过函数mp_potential_settings()修改执行此操作的方式。指示的路径必须已存在,并且将被新路径覆盖。该函数将返回是否找到路径(true)或否(false)。

为了避免函数永远继续计算,您需要提供大于1的系数-如果无法找到短于此系数乘以开始和目标之间距离的路径,则函数将停止并报告失败。系数为4通常已经足够好了,但是如果你期望长时间的绕道,你可能会让它更长。如果失败,仍会创建一条路径,该路径沿目标的近似方向运行,但不会到达目标。

注意:此函数不会移动实例。它只设置路径,您必须使用Path函数进行移动。

 

语法:

mp_potential_path(path, xgoal, ygoal, stepsize, factor, checkall)

参数类型描述
pathPath Asset函数要使用的路径的索引
xgoalReal目标x位置。
ygoalReal目标y位置。
stepsizeReal实例每步移动的速度(以像素为单位)。
factorReal此数字用于防止无限循环。应大于1。有关详细信息,请参阅函数说明。
checkallBoolean是检查所有实例(true)还是只检查实例(false)。

 

返回:

Boolean

 

例子:

path = path_add();
mp_potential_path(path, obj_Player.x, obj_Player.y, 3, 4, 0);
path_start(path, 3, 0, 0);

上述代码创建新的路径资源并将其索引存储在变量"路径"中。然后在具有此代码的对象和对象"obj_Player"之间使用mp_potential_path生成路径,检查碰撞以及房间中的所有实例。最后,它沿着该路径启动对象,即使函数未能返回到"obj_Player"的完整路由。