どのように2つのタップを見て、2を入れ替えて互いの位置を入れ替えることができますか? 例:オブジェクト[1]をタップし、オブジェクト[2]をタップすると、それらはトランジションとスワップを行います。あなたはどうやってこれを設定しようとしますか?タップのスワップポジション - コロナsdk
乾杯
どのように2つのタップを見て、2を入れ替えて互いの位置を入れ替えることができますか? 例:オブジェクト[1]をタップし、オブジェクト[2]をタップすると、それらはトランジションとスワップを行います。あなたはどうやってこれを設定しようとしますか?タップのスワップポジション - コロナsdk
乾杯
気にいら:
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)
Iは最初のタップの座標を保存し、第2のタップのタップイベントで、初の座標への第2の物体と第2タップの座標への最初の遷移になります。
少しこんな感じです。これは擬似コードです。アイデアを提示するのを助けるために。そのような
local firstObject
local secondObject
local coordX, coordY
function firstTapEventListener(event.target)
coordX = target.x
coordY = target.y
end
function secondTapEventListener(event.target)
firstObject.x = target.x
firstObject.y = target.y
target.x = coordX
target.y = coordY
end
おかげでブレットは、ヘルプのための完璧な –
ねえMaicon、感謝のthats。しかし、ポジションの一部は交換されません。何かが左右にスワップしますが、長距離のものは混乱して消滅します。私が産卵する方法のためにこれはありますか?現在3つのオブジェクトが連続して生成されており、3つにスタックされています。 –
ああ、どこに問題が発生しているのか分かります。それは、(別のトランジションを介して)下に動いているときにポジションを入れ替えることに問題があるように見えます。何らかの理由で、オブジェクトが選択されたものの左右に問題がない。これを解決するためのアイデアはありますか? –
おそらくアニメーションの前に "last.isRunning = true"と "target.isRunning = true"を設定し、完了したらfalseに設定する必要があります。 「elseif last〜= targetとnot.isRunningではなくtarget.isRunning」をチェックします。 –