Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Wirgwoks en Abril 05, 2016, 04:53:26 AM

Título: [RESUELTO] Regresar a room en el que estabas
Publicado por: Wirgwoks en Abril 05, 2016, 04:53:26 AM
Quiero hacer un botón de atras, entonces por ejemplo estoy en el menu, de ahi paso a opciones y hay un botón de ir a atras. Pero el room menu es el primero y el opciones el quinto. Entonces me lleva al cuarto room cuando presiono atras. De que manera puedo checar cual es el ultimo room visitado y cuando le de atras me diriga a ese.
Título: Re:Regresar a room en el que estabas
Publicado por: bygdle en Abril 05, 2016, 04:57:21 AM
Se me ocurre que podrías crear un objeto persistente con una variable anterior donde se almacenará el índice de la sala de la que se provenía. Esto lo podrías lograr poniendo en el <create> del objeto persistente:
[gml]
anterior = -1;
[/gml]
Y cuando quieras ir a la room de opciones, haces esto:
[gml]
objeto_persistente.anterior = room;
room_goto(opciones);
[/gml]
Y por último, en el botón de volver de la room de opciones:
[gml]
if anterior >= 0 //Si se ha seleccionado una sala, porque el valor por defecto de la variable es -1, y los índices de rooms son positivos
room_goto(anterior);
[/gml]
Título: Re:Regresar a room en el que estabas
Publicado por: Wirgwoks en Abril 05, 2016, 05:02:21 AM
Bien, ya cree el objeto persistente. Escribes que cuando quiera ir al room opciones ponga ese código, serian en el botón opciones no? y en el de volver al menu que seria en el botón atras?
Título: Re:Regresar a room en el que estabas
Publicado por: bygdle en Abril 05, 2016, 05:04:16 AM
El primer código, como lo mencioné, va en el evento <create> del objeto persistente.
El segundo, en cualquier objeto cuando quieras ir a la sala de opciones.
El tercero, en el botón de opciones, en el evento de mouse, supongo, o en donde quieras "volver" a la sala enterior.
Título: Re:Regresar a room en el que estabas
Publicado por: Wirgwoks en Abril 05, 2016, 05:07:22 AM
No le entiendo a tu explicación  :'( puse el segundo en cualquier parte y tirar error.
Título: Re:Regresar a room en el que estabas
Publicado por: bygdle en Abril 05, 2016, 05:08:16 AM
Tienes el objeto persistente en la sala cuando usas ese código, ¿Cierto?
Título: Re:Regresar a room en el que estabas
Publicado por: Wirgwoks en Abril 05, 2016, 05:10:56 AM
Si, y me tira error cuando inicio me dice esto:

[spoiler]___________________________________________
############################################################################################
FATAL ERROR in
action number 1
of Create Event
for object O_Universo_matematico:

Variable O_Universo_matematico.objeto_persistente(100002, -2147483648) not set before reading it.
at gml_Object_O_Universo_matematico_CreateEvent_1 (line 1) - objeto_persistente.anterior = room;
############################################################################################[/spoiler]
Título: Re:Regresar a room en el que estabas
Publicado por: bygdle en Abril 05, 2016, 05:14:08 AM
Revisa bien lo que tienes en el <create> del objeto persistente. Creo que has puesto lo que no es, no te digo más.

Además, tu objeto se llama O_Universo_matematico, y estás intentando acceder a su variable como objeto_persistente, objeto que no existe.
Título: Re:Regresar a room en el que estabas
Publicado por: Wirgwoks en Abril 05, 2016, 05:20:22 AM
Pero si tengo un objeto llamado objeto_persistente. En el create del objeto persistente tengo lo que me pusiste.
Título: Re:Regresar a room en el que estabas
Publicado por: Wirgwoks en Abril 05, 2016, 05:35:18 AM
Revise todo y sigue marcando el error:


___________________________________________
############################################################################################
FATAL ERROR in
action number 1
of Create Event
for object O_Universo_matematico:

Unable to find any instance for object index '29'
at gml_Object_O_Universo_matematico_CreateEvent_1 (line 1) - O_Persistente.anterior = room
############################################################################################

ya se que dice O_Persistente, asi lo tengo el objeto. Los dos objetos estan en el room menu entonces no se que falla.
Título: Re:Regresar a room en el que estabas
Publicado por: bygdle en Abril 05, 2016, 05:41:18 AM
ahora, el error es diferente  :-\
Ese error significa que no existe ninguna instancia del objeto con el índice 29, o sea, el objeto O_Persistente. Revisa bien.

Podrías, también, intentar poner una room atrás de la que tienes para probar el código, y en esa room anterior (podría ser también la primera room del juego), y en ésta poner el objeto persistente.
Título: Re:Regresar a room en el que estabas
Publicado por: Wirgwoks en Abril 05, 2016, 05:49:20 AM
El O_Persistente esta bien, en el evento create tengo esto: anterior = -1;

En realidad tengo una anterior que es R_Cargando entonces puse ahi el persistente y funciona correctamente :DDDDDD

Muchisimas gracias Niu  :D
Título: Re:Regresar a room en el que estabas
Publicado por: Wirgwoks en Abril 05, 2016, 12:20:55 PM
Vuelvo a abrir el tema, me di cuenta que no funciona exactamente como lo requiero.

El problemas es que me regresa al menu siempre, lo que quiero es que regrese el ultimo. Por ejemplo: Estoy en el menu, de ahi paso a otro room1 y despues a otro room2. Entonces en el room2 le presiono ir atras, este deberia mandarme a room1, pero manda a menu.
Título: Re:Regresar a room en el que estabas
Publicado por: bygdle en Abril 05, 2016, 09:32:38 PM
La verdad no entiendo cuál será el problema, así que decidí hacer un editable con los códigos que te di, revísalo y verifica que todo anda bien. El editable lo he probado y funciona.
Título: Re:Regresar a room en el que estabas
Publicado por: Wirgwoks en Abril 05, 2016, 11:16:08 PM
Esta bien, cuando pueda lo pruebo gracias.
Título: Re:Regresar a room en el que estabas
Publicado por: Wirgwoks en Abril 06, 2016, 02:40:26 PM
Lo probe y nunca pasa del naranja al verde. Solo pasa de verde a azul claro, o naranja a azul claro.
Título: Re:Regresar a room en el que estabas
Publicado por: bygdle en Abril 06, 2016, 09:30:40 PM
La primera y la segunda sala (verde y naranja) son, hipotéticamente hablando, las salas a donde se puede ir al menú de opciones, y la tercera sala (gris) es el menú de opciones.
Con el botón azul (en la verde y naranja) vas a la sala de opciones, y con el rojo vas a la siguiente sala. Desde el menú de opciones, si llegaste presionando el botón azul de la sala verde, al presionar el botón volverás a ésta, lo mismo con la naranja.
Título: Re:Regresar a room en el que estabas
Publicado por: Wirgwoks en Abril 06, 2016, 11:58:22 PM
Hubiera sido mas fácil los botones con algún texto.  :-[

Entonces si por ejemplo tengo otra room de ayuda ¿debo de hacer otro objeto persistente y todo eso?