I have this code in GML2 Create
event
inst1 = instance_create_layer(100, 100, "Instances", obj_genus)
inst2 = instance_create_layer(200, 100, "Instances", obj_genus)
with inst1 {
txt = "Ying"
related = inst2
}
with inst2 {
txt = "Yang"
related = inst1
}
But I can't use inst1
or inst2
at this time. I get the follower error:
ERROR in
action number 1
of Create Event
for object obj_game:
Variable obj_genus.inst2(100006, -2147483648) not set before
reading it.
at gml_Object_obj_game_Create_0(line 5)- related = inst2
##################
gml_Object_obj_game_Create_0 (line 5)
I create pairs of objects which are related to each other. Is it possible to wait in the Create
event, until the object has been created? Unfortunately there is no Post Create
event or something like that.
Your problem is not related to instance creation, but rather to the
with
statement - see,with
changes what the current instance will be in the block, therefore as ofrelated = inst2
line you are not pulling theinst2
variable fromobj_game
, but rather fromobj_genus
that you apply the statement on.Using local variables (which you have found yourself) is by far the easiest way around this, as local variables are function/event-wide and thus remain perfectly accessible inside a
with
-block.If you do need those two instances stored in
obj_game
for later use, you could useother.
: