Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: juantrix666 en Abril 08, 2021, 02:31:47 am

Título: como pasar el nombre de una variable como parametro de un script
Publicado por: juantrix666 en Abril 08, 2021, 02:31:47 am
Buenas, estoy haciendo un script en el que se le pasa el nombre del objeto, la variable y el dato a cargar en esa variable, para un sistema de cutscenes. El tema es que no se como referirme a una variable para modificarla si tengo su nombre como string.
Título: Re: como pasar el nombre de una variable como parametro de un script
Publicado por: El bananita en Abril 11, 2021, 05:35:48 am
Puedes usar la función asset_get_index("nombre del objeto").

Te explico cómo:

var obj = asset_get_index("La variable con el nombre del objeto");

With(obj)
{
}


Título: Re: como pasar el nombre de una variable como parametro de un script
Publicado por: BssString en Abril 11, 2021, 09:41:08 pm
Hola juantrix666

En GM8 se podía usar una "string" para acceder a la variable creo, pero en GM Studio ya no se puede hacer.

Deberías pensar en un sistema diferente, tal vez utilizando arrays en el objeto original y pasarle el array y la posición que vas a editar al script (en vez del nombre de la variable) y que el script edite el array en el objeto original. Un script sólo puede modificar el array original usando el accesor de los arrays que es el signo "@".
Aquí puedes encontrar más información sobre eso:
https://docs2.yoyogames.com/source/_build/3_scripting/3_gml_overview/13_accessors.html

También los scripts pueden operar como "funciones" si usas el comando "return", así que otra opción es que tu script sea un cálculo, pero no modifique ninguna variable, sino que retorne un nuevo valor para usarlo después.

Ejemplo, si creo un script llamado "doble" que me duplica el valor del número que le paso como argumento:

///doble(numero)
return argument0 * 2

Y luego en mi objeto uso:
var num = 1
num = doble(num)

Ahora mi variable "num" alojará el número 2 porque aplicó el cálculo del script y el script retornó un nuevo valor que luego se lo asigné a la variable.

Saludos
Título: Re: como pasar el nombre de una variable como parametro de un script
Publicado por: juantrix666 en Abril 13, 2021, 11:45:19 pm
mmmm ya se complica de mas, supongo que tendre que hacerlo manual porque el sistema que hice no podria funcionar sino, pero lo voy a tener en cuenta para la proxima, gracias.
Título: Re: como pasar el nombre de una variable como parametro de un script
Publicado por: Void en Abril 14, 2021, 01:52:35 am
La función variable_instance_set puede modificar variables de objetos cuyo nombre se pasa como string, buscala en el manual.