applyForce速度更快

时间:2013-10-13 16:40:43

标签: lua corona physics

嘿,我有这个问题,如果我点按并按住屏幕,播放器会在Y上加快速度。

我更喜欢的是玩家点击屏幕(并保持浮动)并且他以稳定的速度上升(没有更快)。

以下是浮动速度和触摸事件的功能:

function activateJets(ship,event)
    ship:applyForce(0, -1.0, ship.x, ship.y)
    print("run")
end

function touchScreen(event)
    print("touch")
    if event.phase == "began" then
        ship.enterFrame = activateJets
        Runtime:addEventListener("enterFrame", ship)
    end
    if event.phase == "ended" then
        Runtime:removeEventListener("enterFrame", ship)
   end    
end

Runtime:addEventListener("touch", touchScreen)

很抱歉,如果这没有意义。以下是我想要的一般概念:

  • 玩家触摸屏幕(并保留)
  • 然后
  • 物体以一致的速度(没有速度增益)浮动
  • 播放器发布触摸
  • 对象正常掉落

1 个答案:

答案 0 :(得分:0)

所涉及的物理学阻止你这样做:你正在向你的船施加恒定的力量。根据牛顿定律(由物理库模拟),这意味着恒定的加速度,因此速度线性增加。

您想要的行为(与真实物理不一致)是即时加速到您的目标速度,然后没有速度变化。因此,使用activateJets函数中的shipSetLinearVelocity()将船速设置为恒定值就足够了。当然,触摸结束时应将速度重置为零。