Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: venus en Septiembre 09, 2015, 02:29:44 PM

Título: [Resuelto] Cambiar una variable interna desde otro objeto
Publicado por: venus en Septiembre 09, 2015, 02:29:44 PM
El objeto A tiene una variable interna que se crea en el evento create. ¿Como puedo modificar esa variable con el objeto B?
-El objeto B es el que crea al objeto A.
-No hay colision entre ambos objetos.
-Hay varios objetos A.
Título: Re:Cambiar una variable interna desde otro objeto
Publicado por: kostra en Septiembre 09, 2015, 02:39:19 PM
holaquetal = instance_create(x,y,objetoB);

ahora "holaquetal" es el objetoB...

holaquetal.variable = 5; //por ejemplo

asi de simple :P
Título: Re:Cambiar una variable interna desde otro objeto
Publicado por: venus en Septiembre 09, 2015, 02:56:23 PM
No había caido. Pensaba que tendría que hacer ID.variable = valor;
Título: Re:Cambiar una variable interna desde otro objeto
Publicado por: kostra en Septiembre 09, 2015, 03:00:34 PM
eso cuando no la has creado, pero creandola, tienes este truco, lo dice en el manual :P, si ya resolviste ponlo en el titulo ;)
Título: Re:[Resuelto] Cambiar una variable interna desde otro objeto
Publicado por: venus en Septiembre 09, 2015, 05:18:09 PM
Hay algo que falla. Está relacionado con esto así que no voy a abrir otro tema.

algo = instance_create(random_range(300,room_width-300),random_range(300,room_height-300),obj_algo)
Cada vez que ejecuto el juego aparece en el mismo sitio. ¿No se supone que es aleatorio?
Título: Re:[Resuelto] Cambiar una variable interna desde otro objeto
Publicado por: kostra en Septiembre 09, 2015, 06:27:12 PM
justo encima de esa linea, escribe:
randomize();


La aleatoriedad de gm no es perecta, y suele empezar por la misma, con ese comando, digamos que "remueves el cubilete de los dados" jajaja
Título: Re:[Resuelto] Cambiar una variable interna desde otro objeto
Publicado por: Jucarave en Septiembre 09, 2015, 06:30:33 PM
Sacado del manual:

Citar
random()

NOTE: This function will return the same value every time the game is run afresh due to the fact that GameMaker: Studio generates the same initial random seed every time to make debugging code a far easier task. To avoid this behaviour use randomize at the start of your game.

(Esta función retorna el mismo valor cuando el juego es ejecutado, esto se debe a que Game Maker Studio genera la misma semilla inicial para hacer la tarea de depurar el código mas fácil. Para evitar este comportamiento utiliza la función randomize al inicio de tu juego.)
Título: Re:[Resuelto] Cambiar una variable interna desde otro objeto
Publicado por: venus en Septiembre 09, 2015, 06:50:53 PM
Y ahora viene otro probjema XD Siento preguntar tanto...
cuando yo hago algo.variable_existente = valor me sale bien. Pero si hago algo.variable_inventada = valor no hay resultado.
Pongo ejemplos:
algo.hspeed = 13 -> Funciona
algo.asdfgh = "prrrrrr" -> No funciona
Título: Re:[Resuelto] Cambiar una variable interna desde otro objeto
Publicado por: kostra en Septiembre 09, 2015, 07:35:41 PM
deberia funcionar.... :/ disculpa no tengo gm a mano para comprobarlo xD de todos modos, puedes simplemente ponerla en el create del objetoB, a cero, aunke creo que no hace falta :S
Título: Re:[Resuelto] Cambiar una variable interna desde otro objeto
Publicado por: venus en Septiembre 09, 2015, 08:07:31 PM
Ya lo he resuelto. Resulta que me he liado con for.