Tengo un problema con el siguiente código que puse en el evento destroy de un objeto:

if instance_exists(o_selector)
    o_selector.x=0;


Me arroja el siguiente error:


___________________________________________
############################################################################################
FATAL ERROR in
action number 1
of Destroy Event
for object o_menu_red:

Unable to find any instance for object index '4'
at gml_Object_o_menu_red_DestroyEvent_1 (line 10) -     o_selector.x=0;
############################################################################################


El objeto o_selector lo desactivé anteriormente y luego lo reactivé desde otra instancia antes de ejecutar el código que indiqué, pero GMS parece no reconocer su existencia. Si no reconoce que existe, ¿cómo es posible que el código se haya ejecutado siquiera dada la condición if que está antes? Sospecho que algo tiene que ver el hecho de que fue recién reactivada pero no entiendo por qué.



#2 Julio 31, 2015, 08:22:39 PM Ultima modificación: Julio 31, 2015, 10:34:13 PM por penumbra
De acuerdo a este post http://gmc.yoyogames.com/index.php?showtopic=632755&p=4790529

después de reactivar una instancia, estando todavía en el mismo STEP de reactivación, la función instance_exists SÍ REPORTA que esa instancia existe nuevamente, pero GMS todavía tiene problemas para acceder a esa instancia mediante with. Pareciera que la reactivación "total" de instancias no se completa del todo sino hasta el siguiente STEP. Quizás haya otra razón, pero la desconozco.

No estoy seguro de que esto mismo ocurre ne tu juego, pero de ser así, entonces sería necesario esperar o retrasar el acceso a esa instancia hasta el siguiente STEP.

Cita de: Yoo en Julio 31, 2015, 03:48:20 PM
PUEDE QUE ESTO AYUDE  XD :

http://docs.yoyogames.com/source/dadiospice/002_reference/objects%20and%20instances/instances/deactivating%20instances/index.html

(google traductor)

Gracias por responder, Yoo. Sin embargo, ya tenía considerado lo que dice el manual sobre la desactivación/reactivación de instancias.

Cita de: penumbra en Julio 31, 2015, 08:22:39 PM
De acuerdo a este post http://gmc.yoyogames.com/index.php?showtopic=632755&p=4790529

después de reactivar una instancia, estando todavía en el mismo STEP de reactivación, la función instance_exists SÍ REPORTA que esa instancia existe nuevamente, pero GMS todavía tiene problemas para acceder a esa instancia mediante with. Pareciera que la reactivación "total" de instancias no se completa del todo sino hasta el siguiente STEP. Quizás haya otra razón, pero la desconozco.

No estoy seguro de que esto mismo ocurre ne tu juego, pero de ser así, entonces sería necesario esperar o retrasar el acceso a esa instancia hasta el siguiente STEP.


Penumbra, me parece que lo que dices que está pasando es lo más probable. No me cabe en la cabeza otra explicación para ese comportamiento tan ilógico. Lamentablemente el esperar hasta el siguiente step para usar la instancia reactivada no es una opción así que en vez de desactivarla ignoro todos sus eventos usando una variable en ella que llamé "activa" que puede tomar valores true o false y según ello escapar del código para cada evento.