Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: wilmerroa en Noviembre 19, 2018, 04:10:27 AM

Título: Clicks para distintos botones y borrar la cantidad de clicks anterior {RESUELTO}
Publicado por: wilmerroa en Noviembre 19, 2018, 04:10:27 AM
Saludos a Todos en la Comunidad

Miren necesito ayuda en esto, tengo un menu principal con varios botones , lo típico , como ( Jugar, Opciones, Salir, Créditos etc ), lo que necesito es tener una variable para declarar que al hacer dos clicks encima de cada uno, vaya al room destinado ( Eso es fácil ) lo dificil para mi es esto, que si ya eh hecho click en cualquiera de los otros botones el valor de aquel botón en su variable de clicks se reinicie a 0, para que solo ejecute la función del botón que se está presionando y vaya al room. Esta función esta en el juego de Metal Slug 3 , aquí un gif:
https://media.giphy.com/media/2sixLb9xZrxU6CUasj/giphy.gif (https://media.giphy.com/media/2sixLb9xZrxU6CUasj/giphy.gif)
Estaba intentando con este código, que obviamente no funciona, para asignarle a cada boton una variable con un numero distinto, yo lo hago con objetos separados, pero me gustaria simplificarlo para que de un solo objeto se generaran todos estos botones.
Evento Create


global.seleccion = 1;

globalvar click1 ;
click1 = 0


Evento Left Button:

if global.seleccion != 2 {
       click2 = 0
     
    }
else {
click1++
if (click1 >= 2) {
      room_goto(menu_principal)     
      }  }
     

Título: Re:Clicks para distintos botones y borrar la cantidad de clicks anterior
Publicado por: Johann en Noviembre 19, 2018, 05:15:38 PM
Puedes hacer un único botón que tenga variables como room_destino y seleccionado en el evento create, y una variable con el texto a mostrar
[gml]
seleccionado = false;
room_destino = "";
texto = "";
[/gml]
En el editor de rooms, cuando agregues un objeto de este tipo, le pones en el creation code lo correspondiente:
[gml]
room_destino = "room_opciones"; // o como se llame cada room
texto = "Opciones"; // lo que sale en el boton
[/gml]
Y cuando le hagas clic a un boton le quitas el seleccionado a todos y vuelves y lo pones a la instancia que has clickado, asi si haces clic a un botonya seleccionado, que te mande al room correspondiente:
[gml]
if mouse_check_button(mb_left) //o mejor directamente en el evento mouse left
{
  if seleccionado {
    room_goto(room_destino);
  } else {
    with (obj_button) {// o como se llame para deseleccionar cualquier otro boton que esté seleccionado previamente
      seleccionado = false;
    }
    seleccionado = true;
  }
}
[/gml]

obviamente en el evento draw del botón dibujas el botón y el texto de la variable texto según si esta seleccionado o no para que se vea mas grande como en el gif
Lo he puesto todo porque seguramente es diferente a lo que ya tengas hecho.
Título: Re:Clicks para distintos botones y borrar la cantidad de clicks anterior
Publicado por: wilmerroa en Noviembre 20, 2018, 01:38:43 AM
Muchísimas Gracias Johann , por tomarte el tiempo , funciona a la Perfección !!