Hola a todos, tengo una duda.. como dice el titulo quisiera saber como puedo calcular la distancia entre las instancias mas cercanas de un mismo objeto. les agradecería mucho que me guiaran estoy algo perdido con tantas funciones!
[gml]
///Evento step del objeto
var near = instance_nearest(x, y, object_index);
var dist = distance_to_object(near); //Ésta es la distancia.
[/gml]
Okay amigo, no creía que seria tan simple, gracias por la ayuda :D, tengo otra duda amigo, dibuje en el evento draw la variable de dist (draw_text(x,y,string(dist))); y al ejecutarlo me da un resultado de 1,000,000
(https://i.hipertextual.com/2017/10/21/21.png)
(https://i.hipertextual.com/2017/10/21/22.png)
porque esto?? o sera que lo estoy malinterpretando.
La variable dist es local al evento Step del objeto. Mueve el código que te dí al evento Draw, a ver si se arregla.
Nope se queda igual xDD
Vale, lo que me temía. Entonces la razón es que el objeto se encuentra a sí mismo como instancia más cercana y calcula una distancia enorme. Ahora el código se complicará un poco:
[gml]
//Evento step... o Draw.
var ds = ds_priority_create();
with(object_index)
{
if(id != other.id)
{
ds_priority_add(ds, id, distance_to_object(other));
}
}
var near = ds_priority_find_min(ds);
var dist = 0;
if(instance_exists(near))
dist = distance_to_object(near);
[/gml]
EDIT: Se me fue un símbolo de más xD, código corregido.
Ahora si funciona correctamente, Muchisimas gracias NiuWeb por la rapida y perfecta explicación entendí perfectamente :)
(https://i.hipertextual.com/2017/10/21/1.png)