Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Detectar la primera instancia creada de un objeto[Solucionado]  (Leído 340 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jlcstrike

  • Habitual
  • *
  • Puntos: 28
  • Mensajes: 11
    • Ver Perfil
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
« última modificación: Enero 20, 2018, 12:12:32 pm por jlcstrike »

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Frenzy

Respuesta #1 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

 
Los siguientes usuarios dieron las gracias a este tema: Yuzo


Desconectado jlcstrike

  • Habitual
  • *
  • Puntos: 28
  • Mensajes: 11
    • Ver Perfil
Respuesta #2 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);
}

 


Desconectado Clamud

Respuesta #3 en: Enero 21, 2018, 03:03:01 pm
Es más fácil de esta forma:
if (instance_number(objeto) > 20){
  with instance_find(objeto, 0)
    instance_destroy();
}

 
Los siguientes usuarios dieron las gracias a este tema: Yuzo


Desconectado jlcstrike

  • Habitual
  • *
  • Puntos: 28
  • Mensajes: 11
    • Ver Perfil
Respuesta #4 en: Enero 22, 2018, 04:59:46 pm
Genial, lo voy a probar.