Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: chicoespañol en Abril 05, 2015, 06:23:34 PM

Título: Hacer que un objeto vuelva a su ultima posicion
Publicado por: chicoespañol en Abril 05, 2015, 06:23:34 PM
tengo un objeto que lo muevo por un sistema drag and drop y quiero que cuando yo dropee el objeto con el mouse se almacene la posicion y cuando yo dropee el objeto en una posicion donde ya hay uno que vuelva a esa posicion almacemada. Espero que me haya explicado bien  ;D
Título: Re:Hacer que un objeto vuelva a su ultima posicion
Publicado por: Iros en Abril 05, 2015, 06:43:55 PM
En el evento Create de ese objeto creá dos variables, una llamada "lastX" y otra "lastY", cuando agarrás el objeto se almacene lastX y lastY, después cuando lo vas a soltar y hay otro objeto en esa posición tendrías que igualar X a lastX e Y a lastY.
Título: Re:Hacer que un objeto vuelva a su ultima posicion
Publicado por: arcangelcaos en Abril 05, 2015, 06:50:01 PM
Bueno, con drag and drop, no se pero por código yo hago esto.

LEFT MOUSE REALESE (o como se escriba)
if collision_point(mouse_x, mouse_y, objCuadriculaEnJuego, false, false)
{
cuadricula = collision_point(mouse_x, mouse_y, objCuadriculaEnJuego, false, false)
    if place_free( cuadricula.x, cuadricula.y)
    {
    x = cuadricula.x
    y = cuadricula.y
    }
    else
    {
    x = global.instanciax
    y = global.instanciay
    }
    }
else
    {
    x = global.instanciax
    y = global.instanciay
    }


LEFT MOUSE PRESEED
if EnJuego = false and global.enturno = false
    {arra= 1}
    else
    {arra = 0}


STEP
if arra = 1
{
if (mouse_check_button(mb_left))
{
x = mouse_x
y= mouse_y
}
}



Bueno, en este código que con unas cosas mas yo lo uso en un juego que estoy haciendo ahora mismo. Te explico como funciona

Guardo en global.instanciax / y, la posición que tiene en ese momento. Cuando le apretó con el botón derecho del ratón, pongo una variable en 1. Y en step, pongo que si esa variable es 1, la posición x e y de la instancia es la misma que la del ratón. Pero es más, si cuando suelto la instancia en un sitio, no colisiona con la CUADRICUAL, esta vuelve a su lugar de origen.

Puede ser confuso un poco el código este que uso, pero es que si lo pusiera completo con todo lo que hago se entendiera mejor, pero te liaría a ti más.
Título: Re:Hacer que un objeto vuelva a su ultima posicion
Publicado por: vitail en Abril 05, 2015, 11:24:00 PM
existen unas variables internas llamadas xstart y ystart que si sabes ingles son las coordenadas iniciales de algun objeto entonces lo unico que tendrias que hacer es que X o Y o los dos sean igual a xstart o ystart


x = xstart
y = ystart
Título: Re:Hacer que un objeto vuelva a su ultima posicion
Publicado por: Iros en Abril 06, 2015, 05:28:40 AM
vitail, eso sería en el caso que nunca se hayan movido los objetos, si los moviste a una posición libre y lo queres volver a mover a otra posición, pero esa posición no está libre no serviría.