Enero 20, 2018, 02:23:54 AM Ultima modificación: Enero 20, 2018, 12:12:32 PM por jlcstrike
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

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

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);
}

Es más fácil de esta forma:
[gml]
if (instance_number(objeto) > 20){
  with instance_find(objeto, 0)
    instance_destroy();
}
[/gml]