使用此函数,可以从指定路径中删除点。路径点从0开始编号,因此第一个点总是第0个点,最后一个路径点将是path_get_number()-1。如果您在路径资源上调用此函数,则点的删除将是永久的,将来分配路径的所有实例都将丢失已删除的点。如果这不是您需要的,那么您应该使用像path_duplicate()这样的函数来首先创建路径的副本,然后在复制的资源上调用该函数(不要忘记在不再需要资源时调用path_delete())。
path_delete_point(ind, n);
参数 | 类型 | 描述 |
---|---|---|
index | Path Asset | 要从中删除点的路径的索引。 |
n | Real | 要删除的定义点。 |
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个点。