mp_potential_path_object

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

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

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

 

语法:

mp_potential_path_object(path, xgoal, ygoal, stepsize, factor, obj)

参数类型描述
pathPath Asset函数要使用的路径的索引
xgoalReal目标x位置。
ygoalReal目标y位置。
stepsizeReal实例每步移动的速度(以像素为单位)。
factorReal此数字用于防止无限循环。应大于1。有关详细信息,请参阅函数说明。
objObject Asset要阻止路径的对象。可以是对象索引、实例ID或特殊关键字,全部

 

返回:

Boolean

 

例子:

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

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