1

在我的应用程序中,我希望一个对象在 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
4

2 回答 2

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 
于 2012-10-09T06:02:01.623 回答
0

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

于 2012-10-08T13:53:33.793 回答