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: Instance_destroy ()  (Leído 278 veces)

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

Desconectado fedex2020

  • Habitual
  • *
  • Puntos: 67
  • Mensajes: 32
    • Ver Perfil
en: Agosto 17, 2020, 09:29:15 pm
Buenas tardes queridos makeros/as, me surge una duda que tengo con respecto a instance_destroy () , porque razón si cuando quiero destruir un objeto (ejemplo  enemigo)
Uso lo siguiente
with (objeto.enemigo )
{
Instance_destroy ()
}
Me destruye todos los objetos enemigo....
Y cuando coloco (other) en vez de el nombre del enemigo en el with  Si me elimina sólo 1 enemigo como lo deseo, espero que puedan aclararme esta duda y desde ya muchas gracias

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado T789

Respuesta #1 en: Agosto 17, 2020, 09:41:41 pm
Ahh... Te refieres a una instancia en particular ¿no?

para ello usas el numero de instancia unica que quieres destruir
with(10001)
  instance_destroy()
Eso destruira sola a esa instancia, tambien puedes manejarlo en una variable depende de como lo quieras destruir, por ejemplo si colisionas, si esta cerca tuyo, o si no le queda vida, etc

Si quieres hacerlo con una en particular, simplemente busca su id en el editor de room, pero puede ser un poco fastidioso; asi que si quieres destruirlo segun los ejemplos anteriores, solo usa funciones que devuelvan id. Un ejemplo para colisiones es:
/// Dentro de una bala
enemy = instance_place(x, y, obj_enemy)
if (enemy) {
  with(enemy) {
    vida -= 1;
    if (vida <= 0) instance_destroy()
  }
}

 


Desconectado fedex2020

  • Habitual
  • *
  • Puntos: 67
  • Mensajes: 32
    • Ver Perfil
Respuesta #2 en: Agosto 17, 2020, 10:03:19 pm
Muchas gracias, me dejaste todo claro...... graciaaaas....

 


Desconectado Clamud

Respuesta #3 en: Agosto 18, 2020, 05:38:20 pm
Puedes omitir el "if (enemy)", el ciclo with ya verifica que las instancias existen antes de ejecutar el código. Puede funcionar así
enemy = instance_place(x, y, obj_enemy);
with(enemy) {
    vida -= 1;
    if (vida <= 0) instance_destroy();
}