Febrero 12, 2011, 03:22:55 AM Ultima modificación: Febrero 14, 2011, 03:16:19 AM por Munguia
estoy haciendo un juego de rompecabezas deslizables, (sliding tile puzzle)

lo estoy haciendo con la opci?n mouse o teclas, mouse funca super bien
pero teclas m?s o menos, hice un objeto base al cual todas las piezas est?n enlazadas.

el problema est? en que cuando hago a la izq o para abajo en lugar de mover solo una pieza se mueven 2 en la misma direcci?n

checken el ejemplo para que vean, para mi no tiene sentido el error y nisiquiera lo puedo detectar, les adjunto un ejemplo.

llevo un para de d?as rompiendome la cabeza con eso

nuevamente ocupo ayuda

porfavor :'(

Creo que el problema esta en que la accion a la izquierda se repite 1 vez m?s causando que se muevan 2 piezas, intentare arreglarlo

Hace unos dias hice un menu y cuando le daba a alguna opcion se metia como si le hubiera dado 2 veces, si el caso es el mismo yo creo que se soluciona poniendo una alarma y una variable de espera:

en la opcion de izquierda o abajo (o donde sea el problema) pones "if espera_1 = true {exit;}" y que cuando le des la tecla lo hagas verdadero y una alarma de 10 steps, y en la alarma le pones que lo haga false
Una persona puede equivocarse mil veces pero solo fracasa cuando le echa la culpa a otro por sus errores

Eso pasa por el orden en que GM ejecuta los eventos. Yo sufr? lo mismo haciendo mi juego de puzzle...
El problema es que cada pieza tiene el evento de moverse al presionar una tecla, y si mal no lo recuerdo, GM ejecuta primero el objeto con el "depth" mas alto, y si varios objetos tienen la misma "depth" se ejecuta el que tiene el "instance_id" mas bajo.

Entonces como todas las piezas tienen el mismo depth, solo influye el instance_id (puedes verlo en el lugar donde agregas los objetos a la room, colocando el mouse sobre cualquier objeto ya colocado) y en ciertos casos cuando presionas cualquier flecha, una pieza se movera y luego la otra pieza tambi?n lo har?, ya que como se movio la primera pieza la condicion que tienes se volvera a cumplir y veras que ambas se mueven.

No se si se entiende la explicaci?n, pero en resumen lo solucione moviendo las piezas modificando su speed, ya que el problema de cambiar la posicion del objeto directamente con su x o y (x+=123 o el jump to position) es que el objeto se mueve inmediatamente al cumplirse la condicion en cualquier evento, mientras que usando speed, esto ocurre en un momento en particular (en el "End Step" si no me equivoco)

Adjunto la solucion
* Si quieres que se mueva instantaneamente, solo pone spd=115 y funcionar? como querias. (a mi me gusta mas deslizandose XD)
** Muy buen dibujo XD

Muchas Gracias a los 3 por responder, y lordgeorge gracias por corregir y mejorar mi ejemplo, pronto actualizo el juego con tus mejoras, est?s en los cr?ditos, muchas gracias  XD