Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Kefe en Agosto 10, 2017, 08:40:54 PM

Título: Accion al mantener presionado un objeto (Resuelto)
Publicado por: Kefe en Agosto 10, 2017, 08:40:54 PM
Buenas, quería saber como hacer para que, al mantener presionado un objeto con el click izquierdo, ocurra alguna acción.
De antemano gracias.   :-[
Título: Re:Accion al mantener presionado un objeto
Publicado por: nonoroman en Agosto 10, 2017, 08:50:31 PM
En el evento mouse de dicho objecto. En el press mouse. Escribe la accion a realizar.

Suerte!!  ;D

[4quote author=Kefe link=topic=29310.msg128780#msg128780 date=1502390454]
Buenas, quería saber como hacer para que, al mantener presionado un objeto con el click izquierdo, ocurra alguna acción.
De antemano gracias.   :-[
[/quote]
Título: Re:Accion al mantener presionado un objeto
Publicado por: Clamud en Agosto 10, 2017, 09:28:51 PM
Si no quieres que la acción se ejecute al instante en el evento Left Pressed inicia un contador
[gml]
cont = 0;
[/gml]
En el evento Step incrementa el valor del contador y compáralo
[gml]
if( ++contador >= 100 ){
   // accion
}
[/gml]
Título: Re:Accion al mantener presionado un objeto
Publicado por: Kefe en Agosto 10, 2017, 11:06:32 PM
Gracias chicos, pero me refiero que al mantener presionado un objeto por cierto tiempo ocurra alguna accion (por ejemplo: una manzana que al dar 1 click= cambia de color, y al manterner presionado durante dos segundos= se destruye)
Título: Re:Accion al mantener presionado un objeto
Publicado por: Zapdos43 en Agosto 11, 2017, 10:20:03 AM
En el objeto de la manzana coloca estos códigos:
En el evento Create:
presionando= false; // variable para controlar las acciones

En el evento Step:

if mouse_check_button_pressed(mb_left) // si presiono boton izquierdo del mouse
   {
   if (mouse_x > x and mouse_x < x+sprite_width and mouse_y > y and mouse_y < y+sprite_height) // si las coordenadas del mouse están dentro del área del sprite de la manzana
     {
       image_blend = c_yellow; // coloreamos el sprite de la manzana
       if (alarm[0] < 0) // si la alarma 0 no está activada
       {
          alarm[0] = room_speed * 2; // multiplica por 2 si quieres esperar 2 segundos, multiplica por 10 para esperar 10 segundos, etc
          presionando= true;
     }
   }

if mouse_check_button_released(mb_left) // si dejamos de presionar el boton izquierdo del mouse
{
presionando= false;
}

if !(mouse_x > x and mouse_x < x+sprite_width and mouse_y > y and mouse_y < y+sprite_height) //el signo ! sirve para negar, en este caso si las coordenadas del mouse NO están dentro del sprite
{
presionando = false;
}



En el evento Alarm 0:

if (presionando) // si la variable sigue siendo "true" significa que no hemos soltado el boton izquierdo y que seguimos dentro del área del sprite
{
      instance_destroy();
}

Saludos.