Corona SDK事件阶段

时间:2013-12-01 21:18:20

标签: lua corona

function drag(event)
if event.phase == "began" then
    firstx, firsty = event.x, event.y
end

if event.phase == "ended" then
    if firsty<event.y then
        local otherx, othery = event.x, event.y
        local x=(otherx-firstx)*4
        local y=(othery-firsty)*4
        shoot(x,y)
    end
end
end

有关event.phase的问题吗?

程序在将firsty与event.y进行比较时会出错。

错误:尝试将nil与数字进行比较

奇怪的是,如果我只让程序加载几秒钟它就能完美运行..

1 个答案:

答案 0 :(得分:0)

我不确定firsty在没有看到更多代码的情况下发生了什么,但是这样呢?我认为它可以更好地解决您的问题。

function drag(event)
    if event.phase == "ended" then
        if event.yStart < event.y then
            local y = (event.y - event.yStart) * 4
            local x = (event.x - event.xStart) * 4
            shoot(x, y)
        end
    end
end

您可以利用x & yStart获取活动的初始坐标,而不是自己保存。