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.
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)
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
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.
Por favor que alguien me ayude necesito solucionar eso y mis conocimientos son muy limitados...
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: