Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Nikholas9 en Diciembre 09, 2014, 03:41:48 AM

Título: Instance Destroy [Ayuda]
Publicado por: Nikholas9 en Diciembre 09, 2014, 03:41:48 AM
Hola a todos, quisiera que me ayuden, les explico mi problema:
tengo un objeto que controla: obj_control
y 3 tipos de objetos diferentes: obj_1 , obj_2, obj_3

al hacer clic en una instancia del Obj_1, en el Obj_control en su codigo destruya todos estos objetos (obj_1 , obj_2, obj_3), pero en lugar de destruirlos se paraliza todo y no puedo hacer nada mas.

el codigo que he puesto en el step del Control es

with(obj_1){
instance_destroy();
}
with(obj_2){
instance_destroy();
}
with(obj_3){
instance_destroy();
}

espero su pronto ayuda, disculpen la molestia.
Título: Re:Instance Destroy [Ayuda]
Publicado por: penumbra en Diciembre 09, 2014, 04:10:21 AM
Dos cosas:
1. Primero, antes de destruír las instancias, deberías preguntar si existen. Tal como está el código, y debido a que está en STEP, una vez que se destruyen las instancias, al siguiente STEP se vuelve a llamar ese código, pero las instancias ya no existen más, y esto ocurre así todo el tiempo que exista el objeto control o mientras corra el juego.

2. Deberias asignar un parent a obj_1, obj_2, obj_3  porque este tipo de operaciones se facilita si hay un parent.

3. (Ya sé que dije dos, pero esto es importante) Dices que al hacer click en la instancia obj_1, se procede a destruír las tres instancias DESDE EL OBJETO CONTROL. Puede que la manera en cómo avisas al controlador que tiene que destruír las instancias sea parte del problema.

Suponiendo que se crea un objeto parent obj_parent para los tres objetos, y que hay una variable que indica si se hizo click en el objeto obj_1 entonces, para destruír los  3 objetos:
[STEP] de obj_control
[gml]
if (click == true) and (instance_exists(obj_parent) )
{
     with (obj_parent)
          instance_destroy()
}
[/gml]
Título: Re:Instance Destroy [Ayuda]
Publicado por: Nikholas9 en Diciembre 09, 2014, 04:52:34 AM
Gracias por responder compañero, creo que debo explicarme mejor

en el Obj_Creador:

      Create:
             sw = false;

      Step:
             if(sw = true){
                 
                   sw = false;
                   with(obj_1){
                       instance_destroy();
                   }
                   with(obj_2){
                       instance_destroy();
                   }
                   with(obj_3){
                       instance_destroy();
                   }

             }

en el Obj_1:

         Left Released:

              obj_Creador.sw = true;

Y bueno los objetos (obj_1 , obj_2, obj_3) tienen varias instancias en la room, lo que pasa es que en lugar de destruirse todo se congela --> no necesariamente se congela sino que es como si ya no estubieran ayi sus objetos pero si sus imagenes que aunque aga algun clic en ellos no hacen nada, ademas no me sale ningun error
Título: Re:Instance Destroy [Ayuda]
Publicado por: Nikholas9 en Diciembre 10, 2014, 07:16:06 PM
ayuda porfavor
Título: Re:Instance Destroy [Ayuda]
Publicado por: TheSandBoxMKG en Diciembre 10, 2014, 08:11:03 PM
¿Te pasa con otros objetos? ¿Versión original o pirateada de GM:Studio?
Título: Re:Instance Destroy [Ayuda]
Publicado por: shaq145 en Diciembre 11, 2014, 11:25:58 AM

La variable sw no deberia ser global?

saludos