Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: elmmertonw en Diciembre 28, 2017, 07:05:26 PM

Título: Ayuda segunda instancia mas cercana[SOLUCIONADO]
Publicado por: elmmertonw en Diciembre 28, 2017, 07:05:26 PM
Bueno se que con instance_nearest(x,y,obj) se obtiene la id de objeto mas cercano al punto que se le pase por x e y , el problema es que necesito la id de la segunda instancia mas cercana.
Espero hacerme entender.
Título: Re:Ayuda segunda instancia mas cercana
Publicado por: pixel king en Diciembre 28, 2017, 07:55:56 PM
si no son muchas instancias podrías ir recorriendo todas las instancias y comparando las distancias obtener cual es la segunda mas cercana por otra parte también podrias hacer instance_nearest de la instancia mas cercana obteniendo así la segunda instancia mas cercana, creo que puede funcionar
Título: Re:Ayuda segunda instancia mas cercana
Publicado por: bygdle en Diciembre 29, 2017, 02:19:29 AM
Usa colas de prioridad, utilizando como prioridad la distancia entre los objetos. Luego sacas dos veces el valor con menor prioridad.
http://docs.yoyogames.com/source/dadiospice/002_reference/data%20structures/ds%20priority%20queues/index.html

(PD: Sí, diije mucho "prioridad" :V)
Título: Re:Ayuda segunda instancia mas cercana
Publicado por: somnus en Diciembre 29, 2017, 03:52:26 AM
primero tienes que obtener todos los objetos que necesites checar, con eso tienes que establecer cual es el que necesitas, usas instance_neares para obtener el objeto mas cercano, despues iteras todos los objetos
for (i = 0; i < instance_number( obj_base_warrior ); i += 1)
   {
   obj = instance_find( objobj , i );
//checar aqui si ese es mas lejos que el obj regresado por instance_nearest
   }//for

y checas si la posicion X o Y que necesites es mayor a la del instance neares, eso indica que es el segundo mas cercano.