path_delete_point

使用此函数,可以从指定路径中删除点。路径点从0开始编号,因此第一个点总是第0个点,最后一个路径点将是path_get_number()-1。如果您在路径资源上调用此函数,则点的删除将是永久的,将来分配路径的所有实例都将丢失已删除的点。如果这不是您需要的,那么您应该使用像path_duplicate()这样的函数来首先创建路径的副本,然后在复制的资源上调用该函数(不要忘记在不再需要资源时调用path_delete())。

 

语法:

path_delete_point(ind, n);

参数类型描述
indexPath Asset要从中删除点的路径的索引。
nReal要删除的定义点。

 

返回:

N/A

 

例子:

var _col = true;
while (_col)
{
    var _num = path_get_number(mypath) - 1;
    if (_num > 2)
    {
        var _x1 = path_get_point_x(my_path, _num);
        var _y1 = path_get_point_y(my_path, _num);
        var _x2 = path_get_point_x(my_path, _num -1);
        var _y2 = path_get_point_y(my_path, _num -1);
        if (collision_line(_x1, _y1, _x2, _y2, obj_Wall, true, false))
        {
            path_delete_point(mypath, _num);
            _num -= 1;
        }
        else _col = false;
    }
    else _col = false;
}

上面的代码生成一个循环,该循环从末端向后检查A上的点是否与给定对象发生碰撞。如果发现碰撞,则删除路径点,直到没有碰撞或路径长度仅为2个点。