Desplazar Objeto Horizontal o Vertical

Hola, este es mi primer Post y soy nuevo con Corona SDK.

como puedo hacer para mover un objeto ya sea horizontal, o vertical, pero no ambas.

No se si me explico, por ejemplo:  (utilizando un addEventListener “touch” y usando el event.phase == “moved”)  Si muevo un objeto con el dedo y lo desplazo hacia el lado izquierdo, entonces que no se mueva para otro lado que no sea el izquierdo, y así con los otros, si lo muevo derecho, a la derecha, si muevo hacia abajo, hacia abajo y así sucesivamente.

solo lo he podido hacer de un lado con el siguiente codigo: 

if event.phase == “moved” then

         objeto1.x = event.x 

end

pero si le pongo movimiento en Y, lo mueve por todos lados

if event.phase == “moved” then

         objeto1.x = event.x 

         objeto1.y = event.y

end

quisiera hacerlo algo así como cuando uno mueve un dulce en CANDY CRUSH, solo puede desplazar el dulce en una de las cuatro direcciones (derecha, izquierda, arriba o abajo).

alguien me puede ayudar? :smiley:

Yo personalmente lo que haría sería:

local xO = event.xStart
local yO = event.yStart

local xI = event.x
local yI = event.y

Local mx = xO - xI
local my = yO - yI

if mx > 3 or mx < -3 then
objeto1.x = event.x
elseif my > 3 or my < -3 then
objeto1.y = event.y
end

No se si es eso lo que querías hacer…

Hola, gracias por contestar, probe de la forma que dijiste, pero siempre me mueve de los dos lados (asi como si arrastrara un objeto por toda la pantalla). intento e intento y no puedo :( 

Ya lo he solucionado, les voy a compartir como lo he hecho.

Un cuadrado se dividiría en 8 partes así: 

para desplazar mi cubo de hacia arriba, abajo, izquierda o derecha, necesito saber primero que el centro de mi cubo es la mitad del cubo en si, osea cubo.x y cubo.y

entonces aquí divido el cubo así:

entonces el desplazamiento del cubo hacia la Izquierda sería así:

usar las partes 7 y 8 (primer figura)

usar la parte 1 del cubo en X (figura 2)

usar la parte 1 y 2 del cubo en Y (figura 2)

entonces el desplazamiento del cubo hacia la Derecha sería así:

usar las partes 3 y 4 (primer figura)

usar la parte 2 del cubo en X (figura 2)

usar la parte 1 y 2 del cubo en Y (figura 2)

entonces el desplazamiento del cubo hacia la Arriba sería así:

usar las partes 5 y 6 (primer figura)

usar la parte 1 y 2 del cubo en X (figura 2)

usar la parte 1 del cubo en Y (figura 2)

entonces el desplazamiento del cubo hacia la Abajo sería así:

usar las partes 1 y 2 (primer figura)

usar la parte 1 y 2 del cubo en X (figura 2)

usar la parte 2 del cubo en Y (figura 2)

Así sería la parte lógica para el desplazamiento.

lo demás es solo utilizar el event.x y event.y para comparar hacia donde hará el desplazamiento. y según donde termine el punto, osea el event.x y event.y, así hará el desplazamiento :smiley:

Un Saludo.

Genial!

Genial!

Yo personalmente lo que haría sería:

local xO = event.xStart
local yO = event.yStart

local xI = event.x
local yI = event.y

Local mx = xO - xI
local my = yO - yI

if mx > 3 or mx < -3 then
objeto1.x = event.x
elseif my > 3 or my < -3 then
objeto1.y = event.y
end

No se si es eso lo que querías hacer…

Hola, gracias por contestar, probe de la forma que dijiste, pero siempre me mueve de los dos lados (asi como si arrastrara un objeto por toda la pantalla). intento e intento y no puedo :( 

Ya lo he solucionado, les voy a compartir como lo he hecho.

Un cuadrado se dividiría en 8 partes así: 

para desplazar mi cubo de hacia arriba, abajo, izquierda o derecha, necesito saber primero que el centro de mi cubo es la mitad del cubo en si, osea cubo.x y cubo.y

entonces aquí divido el cubo así:

entonces el desplazamiento del cubo hacia la Izquierda sería así:

usar las partes 7 y 8 (primer figura)

usar la parte 1 del cubo en X (figura 2)

usar la parte 1 y 2 del cubo en Y (figura 2)

entonces el desplazamiento del cubo hacia la Derecha sería así:

usar las partes 3 y 4 (primer figura)

usar la parte 2 del cubo en X (figura 2)

usar la parte 1 y 2 del cubo en Y (figura 2)

entonces el desplazamiento del cubo hacia la Arriba sería así:

usar las partes 5 y 6 (primer figura)

usar la parte 1 y 2 del cubo en X (figura 2)

usar la parte 1 del cubo en Y (figura 2)

entonces el desplazamiento del cubo hacia la Abajo sería así:

usar las partes 1 y 2 (primer figura)

usar la parte 1 y 2 del cubo en X (figura 2)

usar la parte 2 del cubo en Y (figura 2)

Así sería la parte lógica para el desplazamiento.

lo demás es solo utilizar el event.x y event.y para comparar hacia donde hará el desplazamiento. y según donde termine el punto, osea el event.x y event.y, así hará el desplazamiento :smiley:

Un Saludo.

Genial!

Genial!