View difference between Paste ID: SLwXK2Z0 and DuZY2f44
SHOW: | | - or go back to the newest paste.
1
/// @func   instance_nth_nearest(x, y, obj, n)
2
///
3
/// @desc   Returns the nth nearest object instance to a given point.
4
///			If none is found, noone is returned.
5
///
6
/// @param  {real}      x			x-coordinate of point
7
/// @param  {real}      y			y-coordinate of point
8
/// @param	{object}	obj			object index (or all)
9
/// @param  {real}      n			proximity
10
///
11
/// @return {instance}  object instance found (or noone)
12
///
13
/// GMLscripts.com/license
14
15
function instance_nth_nearest(x, y, obj, n)
16
{
17
    n = clamp(n, 1, instance_number(obj));
18
    var list = ds_priority_create();
19
    var nearest = noone;
20
    with (obj) ds_priority_add(list, id, distance_to_point(x, y));
21
    repeat (n) nearest = ds_priority_delete_min(list);
22
    ds_priority_destroy(list);
23
    return nearest;
24
}
25