Lua applyForce速度更快

Lua applyForce速度更快,lua,coronasdk,physics,Lua,Coronasdk,Physics,嘿,我有一个问题,如果我点击并按住屏幕,玩家会在Y上获得速度 我更喜欢的是,玩家轻触屏幕(并保持向上浮动),然后以稳定的速度向上移动(但不会变得更快) 以下是浮动速度和触摸事件的功能: function activateJets(ship,event) ship:applyForce(0, -1.0, ship.x, ship.y) print("run") end function touchScreen(event) print("touch") if ev

嘿,我有一个问题,如果我点击并按住屏幕,玩家会在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)
如果这不合理,很抱歉。以下是我想要什么的大致想法:

  • 玩家触摸屏幕(并按住)
  • 对象然后以一致的速度上浮(无速度增益)
  • 玩家释放触摸
  • 物体正常下落

所涉及的物理因素阻止你这么做:你在给你的飞船施加恒定的力。根据牛顿定律(由物理图书馆模拟),这意味着恒定的加速度,从而线性增加速度


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

感谢Lorenzo,它与LinearVelocity一起工作得更好。然而,有没有一种方法可以平滑速度,这样当我移除触摸并重新触摸(开始)时,它就不会停止然后浮起来?我需要它在一个运动中平稳运行。