【发布时间】:2016-05-13 21:27:37
【问题描述】:
如何查看两个水龙头并将两个水龙头转换为相互交换位置? 例如:我点击对象[1],然后点击对象[2],然后它们会转换和交换位置。你们会如何尝试设置呢?
干杯
【问题讨论】:
如何查看两个水龙头并将两个水龙头转换为相互交换位置? 例如:我点击对象[1],然后点击对象[2],然后它们会转换和交换位置。你们会如何尝试设置呢?
干杯
【问题讨论】:
类似的东西:
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 )
【讨论】:
我会保存第一次点击的坐标,然后在第二次点击的点击事件中,将第二个对象转换为第一个的坐标,将第一个转换为第二次点击的坐标。
有点像这样。这是伪代码。只是为了帮助展示这个想法。
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
【讨论】: