
Francisco Contreras
PreguntaTengo una duda y va mas con el tema de POO
.
En el caso de las variables de instancia, sé que pertenecen a un objeto. Y también entiendo que puedes llamarla desde otra instancia a través de obj_player.state
.
Pero cómo sabemos en el caso de var bullet que puede ir con dir siendo bullet.dir
.
¿Cómo sabemos el scope y cuando son incompatibles? ¿Un bullet puede ir con hp, por ejemplo bullet.hp?
- Sabiendo exactamente a donde está apuntando la variable y sabiendo que es un objeto.
- Comprobando que exista una variable con ese nombre en ese objeto mediante: variable_instance_exists(https://manual-es.yoyogames.com/#t=GameMaker_Language%2FGML_Reference%2FVariable_Functions%2Fvariable_instance_exists.htm)

Francisco Contreras
Hola y gracias por la raspuesta Jorge . Analizándolo un poco más tienes razón, en el caso de bullet.dir es totalmente factible ya que en la línea anterior a la variable local var dir se le asigna la instancia/objeto de obj_enemy_bullet
var bullet = instance_create_layer(x,y,"Instances",obj_enemy_bullet); ///notar el último argumento de la línea anterior bullet.dir = point_direction(x+lengthdir_x(5,dir_x),y,obj_player.x,obj_player.y);
Ya con esto, puedes acceder al scope local del objeto bullet

Jorge García
Hola Francisco.
La única manera de saber si alguna variable existe dentro de otra variable local (como en tu ejemplo var bullet), es:
Es importante siempre tener la noción del scope en el que te encuentras.
Saludos y mucho éxito.