此函数允许实例向由xgoal/ygoal定义的特定位置迈进一步,同时尽量避免障碍。如果实例将运行到实体实例(或任何检查全部为真时的实例)中,则会更改运动方向,以尝试避开该实例并绕其移动。这种方法不能保证有效,但在最简单的情况下,它会有效地将实例推向目标。该函数返回是否达到目标。
mp_potential_step(xgoal, ygoal, stepsize, checkall)
参数 | 类型 | 描述 |
---|---|---|
xgoal | Real | 目标x位置。 |
ygoal | Real | 目标y位置。 |
stepsize | Real | 实例每步移动的速度(以像素为单位)。 |
checkall | Boolean | 是检查所有实例(true)还是只检查实例(false)。 |
if (instance_exists(obj_Enemy))
{
var inst;
inst = instance_nearest(x, y, obj_Enemy);
mp_potential_step(inst.x, inst.y, 5, false);
}
上述代码首先检查房间中是否存在"obj_Enemy"的实例。如果存在,则找到最近的一个并将其ID存储在变量中。然后使用此变量指示mp_potential_step将带有代码的实例移动到以每步5像素的速度发现的对象的x/y位置,同时避免仅标记为实体的实例。