Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: venus en Octubre 15, 2014, 06:00:16 PM

Título: ¿Como conseguir arrastrar un objeto? [Solucionado]
Publicado por: venus en Octubre 15, 2014, 06:00:16 PM
He intentado y conseguido hacer un objeto arrastrable con el ratón, pero va lageado. ¿Alguien conoce alguna forma de hacer un objeto que se pueda arrastrar?
Título: Re:¿Como conseguir arrastrar un objeto?
Publicado por: Marth en Octubre 15, 2014, 07:52:18 PM
x=mouse_x
y=mouse_y


Si pones este código en el evento step del objeto, debería ser suficiente.
También revisa el room_speed, que si es pequeño, puede ser causante del lag.
Título: Re:¿Como conseguir arrastrar un objeto?
Publicado por: Clamud en Octubre 15, 2014, 08:11:53 PM
Para evitar el retardo, lo mejor sería poner el código en el evento draw para que el objeto se dibuje en la posición del puntero antes de que el puntero cambie de posición.
Título: Re:¿Como conseguir arrastrar un objeto?
Publicado por: venus en Octubre 15, 2014, 11:14:39 PM
Ya, eso que decía ya lo se. Lo que necesito es que ocurra cuando pinchas sobre el objeto (como un archivo en el escritorio de windows).
Título: Re:¿Como conseguir arrastrar un objeto?
Publicado por: venus en Octubre 17, 2014, 05:36:20 PM
Tengo en el evento LEFT_BUTTON de un objeto lo siguiente:
if (distance_to_point(mouse_x,mouse_y) <=0 && !mouse_check_button_released(mb_left)) {
  x = mouse_x;
  y = mouse_y;
}


En cuanto arrastrando, el ratón se sale fuera del objeto, este deja de seguirlo.
Título: Re:¿Como conseguir arrastrar un objeto? SOLUCIÓN
Publicado por: venus en Octubre 17, 2014, 05:53:25 PM
He hallado la solución, disfrutad de mi código.

[spoiler]Esto va en el evento STEP del objeto que quieras poder arrastrar.

if (distance_to_point(mouse_x,mouse_y) <=0 && mouse_check_button_pressed(mb_left)) {
  loop_arrastrar = 1;
}
if (loop_arrastrar == 1) {
  if (mouse_check_button(mb_left)) {
    x = mouse_x;
    y = mouse_y;
  } else {
    loop_arrastrar = 0;
  }
}

[/spoiler]
Título: Re:¿Como conseguir arrastrar un objeto? [Solucionado]
Publicado por: Clamud en Octubre 17, 2014, 09:16:39 PM
Que bueno que encontraste una solución.
Estuve haciendo pruebas y parece que no se puede evitar el lag (por lo menos en windows), para que no se note el lag es mejor poner un cursor con un sprite personalizado (asignar la variable sprite_cursor).