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 |