在Corona SDk中检测触摸运动开始阶段

时间:2012-10-06 13:45:28

标签: events sdk lua touch corona

在我的应用程序中,我想要一个对象在Corona中滑动并跳转触摸开始事件。虽然我在触摸结束事件上成功实现了幻灯片和跳转,但是在开始事件阶段我无法做幻灯片。

我使用以下代码进行滑动和跳跃:

function touched( event )
  if(event.phase == "ended") then
    if(event.x - event.xStart > 70) then
      sliding = true;
      offGround = true; 
    else
      boy:applyLinearImpulse(0, -0.44, boy.x, boy.y)
      offGround = true;
    end
  end
end

2 个答案:

答案 0 :(得分:2)

我做到了这一点。我使用移动阶段并在移动阶段标记布尔激活并在开始时调用计时器功能。这是我的代码。

function Action()
    if(Slide == true)then
        Slide = false;
        sliding = true;
    else
        if(jump == true)then
            meter = -0.54
            boy:applyLinearImpulse(0, meter, boy.x, boy.y)
        end
    end
end

function touched( event )
    local phase = event.phase
    print(phase)

    if(phase == "moved")then
        Slide = true;
        jump = false;
        print("Boy is Sliding")
    end
    if(phase == "began")then
        if  Slide == false then
            print("Boy is not Sliding")
            jump = true
        end

        timerNew = timer.performWithDelay(100 , Action , 1)
    end
end 

答案 1 :(得分:0)

你不能做你想做的事情,事件从定义开始就是它开始的时候,因此event.x和event.xStart总是一样,不可能检测到你在事件开始时移动了多少手指,因为它刚刚开始,因此没有过去可以比较。