Noviembre 01, 2017, 07:06:00 AM Ultima modificación: Noviembre 02, 2017, 09:42:31 PM por Naitsabes0
Tengo un botón que al presionar el mouse, este envía al jugador a la habitación de inicio.

///Volver
room_goto(rom_Inicio);
effect_create_above (ef_firework,x,y,1,c_yellow);

Mi problema es que mi menú tiene sub-categorías, por lo tanto el jugador es enviado al inicio en vez de volver de la ultima habitación que estuvo, como es innecesario crear un botón por cada habitación, ya que usan el mismo sprite, la idea es que pueda programarle su destino al ser presionado por el mouse.

¿Como debería programar el botón para que me permita usar el "creation code" como selector de "room"?

No te estoy entendiendo muy bien lo que necesitas, pero si lo que quieres es que el jugador vuelva a la pantalla de inicio tal como la dejó (por lo de los submenús), hazla persistente.

yo una vez tuve que hacer algo similar y lo que hice fue crear una variable global.room_name tipo string y lo que hacia era ponerle en plan "r_score","r_info"... ,que no son rooms sino submenus, y al iniciar la room mire en cual esta y cree los objetos que le corresponda para cada caso.
No se si me he explicado bien  :-[

Cita de: Arcadian en Noviembre 01, 2017, 07:08:43 PM
No te estoy entendiendo muy bien lo que necesitas, pero si lo que quieres es que el jugador vuelva a la pantalla de inicio tal como la dejó (por lo de los submenús), hazla persistente.
La idea es crear 1 solo objeto botón me permita ir a una room que elija, si lo hago persistente molestara toda la partida por estar presente.

Cita de: pixel king en Noviembre 01, 2017, 08:50:16 PM
yo una vez tuve que hacer algo similar y lo que hice fue crear una variable global.room_name tipo string y lo que hacia era ponerle en plan "r_score","r_info"... ,que no son rooms sino submenus, y al iniciar la room mire en cual esta y cree los objetos que le corresponda para cada caso.
No se si me he explicado bien  :-[
Pues explícate mejor, no me queda claro donde inicias o terminas.

Sólo usa una variable como identificador de sala, y modifícala en el creation code.
[gml]
///Evento create del botón
roomTarget = noone;
[/gml]
[gml]
///Evento mouse pressed (por ejemplo) del botón
if(room_exists(roomTarget))
    room_goto(roomTarget);
[/gml]
Y modificas la variable roomTarget en el creation code.
[gml]
///Creation code del botón
roomTarget = room_Inicio; //por ejemplo
[/gml]
alaberga regué el café.

BA:STFW&RTFM

Cita de: Naitsabes0 en Noviembre 01, 2017, 09:26:53 PM
Cita de: Arcadian en Noviembre 01, 2017, 07:08:43 PM
No te estoy entendiendo muy bien lo que necesitas, pero si lo que quieres es que el jugador vuelva a la pantalla de inicio tal como la dejó (por lo de los submenús), hazla persistente.
La idea es crear 1 solo objeto botón me permita ir a una room que elija, si lo hago persistente molestara toda la partida por estar presente.
Yo hablaba de hacer persistente una room, no un objeto.

Cita de: Naitsabes0 en Noviembre 01, 2017, 09:28:49 PM
Cita de: pixel king en Noviembre 01, 2017, 08:50:16 PM
yo una vez tuve que hacer algo similar y lo que hice fue crear una variable global.room_name tipo string y lo que hacia era ponerle en plan "r_score","r_info"... ,que no son rooms sino submenus, y al iniciar la room mire en cual esta y cree los objetos que le corresponda para cada caso.
No se si me he explicado bien  :-[
Pues explícate mejor, no me queda claro donde inicias o terminas.
En un obj_control de la room_menu pones en el evento create, por ejemplo:

if(global.room_name="r_menu_principal"){
    instance_create(x,y,obj_play)
    //creas todos los objetos que esten en el menu principal
} else if(global.room_name="r_menu_w1"){
   //creas los objetos del submenu del mundo 1
   instance_create(x,y,obj_w1_lvl)
} etc, etc.