A ver si alguien me puede ayudar con lo siguiente:
¿Cómo puedo hacer para guardar los distintos estados de una determinada instancia?
-En pantalla hay a la vez distintas instancias del mismo objeto.
-Los estados de la instancia serían dos.
-Los estados son reversibles, se puede pasar de uno a otro (usando un click de ratón)
Imagino que debo utilizar algún modo de identificar cada instancia (usando su ID por ejemplo) y guardar su valor en la memoria para que se pueda modificar, pero no sé como hacerlo.
¿Alguien me podría plantear cómo se consigue?
Un saludo.
Bueno, yo hace mucho tiempo consulté lo mismo por lo cual te paso mi respuesta pero no puedo explicarte más que esto :P
var obje;
{obje=instance_create(854,671,grey);
obje.carril=3
obje.dire=4}
{obje=instance_create(793,610,grey);
obje.carril=4
obje.dire=4}
{obje=instance_create(854,732,grey);
obje.carril=2
obje.dire=4}
Este es el codigo que me había quedado en mi juego, lo que hacía es un nuevo objeto que se encargaría de crear el mismo objeto pero con instancias con diferentes estados de variables.
Notese que es el ejemplo adaptado a mi juego, lo indispensable es establecer la variable del objeto, y luego crear las instancias y determinar como estarán sus variables. Saludos
Como hay únicamente dos estados, el evento de click sobre la instancia funcionaría como un interrupto. Suponiendo que tienes el objeto, obj_mi_objeto.
CREATE (obj_mi_objeto)
estado = 1
ID_inst = 0
Yo no he usado eventos de mouse en GM, creo que esto debe ir en GLOBAL RELEASE EVENT (o en algun press, no sé bien ) ;D
ID_inst = id // identificador de la última instancia sobre la que se hizo click
with(ID_inst)
{
estado = !estado // Si es un 1, lo cambiará a 0, si es un cero, lo cambiará a 1
}
Después de eso, puedes usar IFs para decidir qué pasa, dependiendo de si el estado es 0 o 1
Gracias a los dos por responder, voy a probar lo de implementar un interruptor como dice penumbra ya que del modo que tengo enfocado el programa creo que es lo más conveniente.
Saludos.