Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: negmig en Febrero 09, 2014, 04:59:18 PM

Título: ¿Como crear opción deshacer?
Publicado por: negmig en Febrero 09, 2014, 04:59:18 PM
Estoy tratando de hacer un editor de imágenes y no logro hacer la opción de deshacer. Intente haciéndolo guardando el juego antes de hacer una acción ejemplo (dibujar un circulo) y al deshacer vuelvo hacia atrás cargando el juego guardado, pero no lo logro. Alguna idea amigos de como hacerlo.   :-\ :'(   
Título: Re:¿Como crear opción deshacer?
Publicado por: Slade en Febrero 10, 2014, 04:08:33 AM
Lo que podrias hacer es ir guardando en un arreglo/vector las acciones que se van ejecutando y luego al ocurrir el evento/accion "deshacer", borrar el ultimo elemento y ejecutar las acciones en el arreglo.

global.accion[0]=accion1
global.accion[1]=accion2
global.accion[2]=accion3
etc...


O bien puedes usar tambien una pila, guardando el objeto antes del ultimo cambio y luego en la accion deshacer, sacar de la pila el elemento y cambiar el objeto actual por el antiguo.

global.acciones=ds_stack_create()
ds_stack_push(global.acciones,objeto/accion) //////metemos a la pila el ultimo cambio
ds_stack_pop(global.acciones)  ///////sacamos de la pila la ultima accion o cambio que se realizo.


Se que no es mucho, pero mas o menos esa seria la idea, espero que te sirva.
Saludos.