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.

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]

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




La variable sw no deberia ser global?

saludos
Fan de los retro-juegos 2D, arcades, plataformas. Programador. Amiga and MSX fan