Somthing wie folgt aus:
local last = nil
local circle1 = display.newCircle(display.contentCenterX - 50, display.contentCenterY - 50, 25)
circle1.fill = { 0.0, 0.6, 1.0 }
local circle2 = display.newCircle(display.contentCenterX + 50, display.contentCenterY + 100, 25)
circle2.fill = { 1.0, 0.5, 0.0 }
local circle3 = display.newCircle(display.contentCenterX + 75, display.contentCenterY - 100, 25)
circle3.fill = { 0.4, 0.5, 0.0 }
local function onTouch(event)
local target = event.target
if event.phase == "ended" then
if last == nil then
last = target
elseif last ~= target then
transition.moveTo(last, { x=target.x, y=target.y })
transition.moveTo(target, { x=last.x, y=last.y })
last = nil
end
end
end
circle1:addEventListener("touch", onTouch)
circle2:addEventListener("touch", onTouch)
circle3:addEventListener("touch", onTouch)
Hey Maicon, vielen Dank für Hilfe. Einige der Positionen tauschen jedoch nicht aus. Alles, was links und rechts ist, wird ausgetauscht, aber alles, was weit weg ist, wird durcheinander gebracht und verschwindet. Ist das so, weil ich spawne? Es erzeugt momentan 3 Objekte in einer Reihe und sie stapeln sich in 3's –
Ah ich sehe, wo das Problem auftritt. Es sieht so aus, als ob es ein Problem mit dem Vertauschen von Positionen hat, wenn sie sich nach unten bewegen (über einen anderen Übergang). Aus irgendeinem Grund ist es kein Problem, wenn das Objekt links oder rechts von dem ausgewählten ist. Irgendwelche Ideen zu einer Lösung dafür? –
Vielleicht müssen Sie vor der Animation "last.isRunning = true" und "target.isRunning = true" festlegen und nach Abschluss auf "false" setzen. Und check "elseif last ~ = Ziel und nicht last.isRunning und nicht target.isRunning". –