Buenas familia. Pues vengo con uncuestion sencilla, pero a veces no nos damos cuenta ahora mismo no pillo la solucion.

El caso es que tengo un objecto que al pinchar con el raton, este lo puedo mover con el raton hacia todas las direcciones hasta soltar el click con la siguiente orden.

with (objectAMOVER)
{
     x = mouse_x;
     y = mouse_y;
}

Hasta aqui todo bien. El problema esta en el momento de clickear el objecto. Este, da un pequeño salto, donde ajusta su posicion X e Y al la del raton y claro, se produce un pequeño saltito.

La pregunta es, como puedo mover dicho objecto con el raton, sin que este produzca el saltito al ser clickeado??

Seguro aue hay algun truco, pero abora mismo ami se me escapa.

Bueno si alguien sabe algo ppr favor que lo comente. Saludos y gracias.  ;) ;)
PCNONOGames  www.pcnono.es

Pues... asi de primeras...
Si usas 2 variables extras tipo


X_diferencia = mouse_x-y
Y_diferencia = muse_y-y


with(objeto a mover)
{
x = mouse_x - X_diferencia
y = mouse_y - Y_diferencia
}


La verdad es que no lo he probado, pero deveria darte una idea.

Si, esta claro que alguna variable mas habra que usar.

Pero el ejemplo suyo creo que no resultara. Perp por ahi andan los tiros.

A ver si entre todos damos en la diana. Gracias de todas formas.!!!  ;D
PCNONOGames  www.pcnono.es

Es algo parecido a lo que ha comentado TheJaj, pero teniendo en cuenta que la diferencia entre la posición x-y del objeto y la posición x-y del ratón solo se verifica al hacer click, es decir, en un evento mouse left pressed, mientras que la actualización de la posición del objeto siempre va en el step porque se entiende que tiene que actualizarse en todo momento.

Bueno gente, lo he probado y no funciona,

se queda clavado en el mismo sitio.

Algo se me esta escapando.  ???
PCNONOGames  www.pcnono.es

#5 Enero 07, 2018, 08:15:47 PM Ultima modificación: Enero 08, 2018, 06:27:15 PM por 3dgeminis
Asi lo hice yo
[gml]
///CREATE///////////////////////////////////////////////////////////
mover=false
xx=0
yy=0

///STEP///////////////////////////////////////////////////////////////
if mouse_check_button_pressed(mb_left)
   {
    if instance_position(mouse_x,mouse_y,id)
       {
        xx=x-mouse_x
        yy=y-mouse_y
        mover=true
       }
   }
   
if mouse_check_button_released(mb_left) {mover=false}

if mover=true
   {
    x=mouse_x+xx
    y=mouse_y+yy
   }
[/gml]

Muchas gracias por responder, pero 3dgeminis, tengo una duda. En el step has puesto una condicion en la linea 1 pero no se cual de ellas es, y el parentesis lo tienes abierto, es como que se te ha borrado parte del codigo.  :-[

justo aqui;
mouse_x,mouse_y,id)

Cita de: 3dgeminis en Enero 07, 2018, 08:15:47 PM
Asi lo hice yo
[gml]
///CREATE///////////////////////////////////////////////////////////
mover=false
xx=0
yy=0

///STEP///////////////////////////////////////////////////////////////
mouse_x,mouse_y,id)
       {
        xx=x-mouse_x
        yy=y-mouse_y
        mover=true
       }
   }
   
if mouse_check_button_released(mb_left) {mover=false}

if mover=true
   {
    x=mouse_x+xx
    y=mouse_y+yy
   }
[/gml]
PCNONOGames  www.pcnono.es

No me di cuenta, ya lo arregle

#8 Junio 03, 2018, 06:50:28 PM Ultima modificación: Junio 03, 2018, 06:53:56 PM por nonoroman
Buenas, vuelvo a retomar este tema.

Geminis puso unas lineas de codigo pero creo que al codigo le falta algo, que le puso en los comentarios anteriores, el volvio a escribir que ya lo arreglo, pero en realidad el codigo sigue igual.

Que es lo que le falta??

alguien sabe lo que es??

Justo aqui

mouse_x,mouse_y,id)
       {
        xx=x-mouse_x
        yy=y-mouse_y
        mover=true
       }
   }
PCNONOGames  www.pcnono.es

Pues el codigo esta arreglado, lo vuelvo a poner por las dudas
[gml]
///CREATE///////////////////////////////////////////////////////////
mover=false
xx=0
yy=0

///STEP///////////////////////////////////////////////////////////////
if mouse_check_button_pressed(mb_left)
   {
    if instance_position(mouse_x,mouse_y,id)
       {
        xx=x-mouse_x
        yy=y-mouse_y
        mover=true
       }
   }
   
if mouse_check_button_released(mb_left) {mover=false}

if mover=true
   {
    x=mouse_x+xx
    y=mouse_y+yy
   }
[/gml]

Muy bien gemenis, si que funciona.

Pero ahora vamos a rizar un poco mas el rizo.

Ahora cuando pincho en el objecto este es arrastrado juntos con el dedo (en dispositivos moviles), pero y si queremos moverlo de igual modo, pero pinchado en cualquier parte de la pantalla, y siendo el mismo movimiento de arrastre??

Como seria entonces??

Por cierto, muchas gracias por la ayuda.  ;)
PCNONOGames  www.pcnono.es

Vale, ya lo averigue.

Solo he tenido que desactivar la condicion del place_meeting.

Ok, ya va perfecto. Gracias a todos y sobre todo a geminis.

;D ;D ;D
PCNONOGames  www.pcnono.es