Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: zorge en Abril 05, 2018, 05:52:23 PM

Título: evento mouse
Publicado por: zorge en Abril 05, 2018, 05:52:23 PM
Tengo un problemilla y es que necesito que un obj_player se desplaze hasta el puntero del mouse al clickar  y que cuando el obj_player llege se detenga he conseguido que se mueva hasta el puntero con un move_toward pero no consigo que al llegar se detenga me podrian orientar un poco por favor dejo el qcodigo que tengo puesto

if mouse_check_button(mb_left) move_towards_point(mouse_x,y,6)
if x = mouse_x speed = 0

Gracias de antemano.
Título: Re:evento mouse
Publicado por: 3dgeminis en Abril 05, 2018, 08:36:36 PM
La velocidad son 6 pixels por step asi que no siempre quedara en la posicion del raton.
Tendrias que poner que cumpla 2 condiciones: que se presione el boton del raton y que la distancia al raton sea mayor a cierto valor(puedes poner 6 que es la velocidad que se mueve)
Título: Re:evento mouse
Publicado por: zorge en Abril 05, 2018, 10:08:26 PM
Cita de: 3dgeminis en Abril 05, 2018, 08:36:36 PM
La velocidad son 6 pixels por step asi que no siempre quedara en la posicion del raton.
Tendrias que poner que cumpla 2 condiciones: que se presione el boton del raton y que la distancia al raton sea mayor a cierto valor(puedes poner 6 que es la velocidad que se mueve)
Creo que no me valdria porque necesito que vaya a ambos lados, lo que necesito es lo que explico en la siguiente imagen que el player redondo se dirija a el cursor del raton solo en x pero al parar para en una de las posiciones delimitadas por las lineas amarillas, pero que sea que vaya poco a poco con una hspeed no que de un salto como digo en el ejemplo
Título: Re:evento mouse
Publicado por: zorge en Abril 06, 2018, 03:02:25 AM
He conseguido solucionar el problema casi entero pero ahora me sale otro problema, he conseguido que al marcar en ciertas coordenadas con el boton derecho del mouse vaya hacia alli e incluso que pare, pero ahora me pasa que para en un punto antes o dos segun donde este el player y no deja continuar explico mejor con este codigo :

if mouse_check_button(mb_left) and mouse_x >0 && mouse_x < 129 {move_towards_point(64,y,4)}if x == 64 speed = 0; consigo que este donde este el player clicando mouse_left vaya
a la posicion 64 y pare aunque este en la posicion 768 que es la ultima(el margen derecho de la room)
if mouse_check_button(mb_left) and mouse_x >128 && mouse_x < 257 {move_towards_point(192,y,4)}if x == 192 speed = 0; con este lo mismo que arriba pero para en 192 el problema viene cuando mi player esta por ejemplo en 300 y pulso mouse derecho en la primera condicion pero al llegar a 192 se para en vez de en 64 como podria hacer para que las dos fueran buenas que si pincho entre las coordenadas de x entre 0 y 129 el player si esta en 400 ignore el if x == 192 speed = 0; y vaya al 64 y viceversa
Muchas gracias de antemano.
Título: Re:evento mouse
Publicado por: zorge en Abril 07, 2018, 01:48:26 AM
Por favor que alguien me ayude necesito solucionar eso y mis conocimientos son muy limitados...
Título: Re:evento mouse
Publicado por: 3dgeminis en Abril 07, 2018, 07:47:00 AM
Prueba lo siguiente:
[gml]
if place_snapped(64,0) {hspeed=0}

if mouse_check_button(mb_left) and x!=(floor(mouse_x/64)*64)
   {
    if (floor(mouse_x/64)*64) > (floor(x/64)*64) {hspeed=4}
    if (floor(mouse_x/64)*64) < (floor(x/64)*64) {hspeed=-4}
   }
[/gml]
Lo que hace es moverse en una grilla de 64 pixels, si se presiona el raton el objeto se se empieza a mover hasta que llega hasta el cuadrado de la grilla donde esta el raton.
Ejemplo: