Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: jlcstrike en Enero 20, 2018, 02:23:54 AM

Título: Detectar la primera instancia creada de un objeto[Solucionado]
Publicado por: jlcstrike en Enero 20, 2018, 02:23:54 AM
Hola cada X segundos creo una instancia de un objeto. Me gustaría saber como puedo detectar la primera instancia creada para al detectar que ya tengo 20 instancias de ese objeto destruir la primera de las 20 y así sucesivamente
Título: Re:Detectar la primera instancia creada de un objeto
Publicado por: Frenzy en Enero 20, 2018, 06:12:45 AM
Puedes ponerle una variable al objeto que dija su numero. Cuando creas uno nuevo su numero sera el numero de instancias de ese tipo, puedes usar instance_number o algo asi XD. Pon una condicion de que cuando una instancia detecte que es la 21 Con un with a todas las instancias reducen su numero o id (id-=1). La istancia que tenga -1 o 0 (depende desde donde cuentes) se destruya
Título: Re:Detectar la primera instancia creada de un objeto
Publicado por: jlcstrike en Enero 20, 2018, 11:24:11 AM
HE encontrado la solución buscando un poco sería así:
if (instance_number(objeto) > 20){
     p = ds_priority_create();
     with(objeto){
          ds_priority_add(other.p, id, id);
     }
     with(ds_priority_find_min(p)){
          instance_destroy();
     }
     ds_priority_destroy(p);
}
Título: Re:Detectar la primera instancia creada de un objeto[Solucionado]
Publicado por: Clamud en Enero 21, 2018, 03:03:01 PM
Es más fácil de esta forma:
[gml]
if (instance_number(objeto) > 20){
  with instance_find(objeto, 0)
    instance_destroy();
}
[/gml]
Título: Re:Detectar la primera instancia creada de un objeto[Solucionado]
Publicado por: jlcstrike en Enero 22, 2018, 04:59:46 PM
Genial, lo voy a probar.