如何在corona sdk中检查一个物体是否向下加速?

如何检查对象是否在 corona SDK 中向下加速?

我正在使用 corona SDK 物理引擎。

点赞
用户869951
用户869951

请注意,物体可能向下运动,但由于向上的力减速,最终会将其运动改为向上。类似地,它可能向上移动,但由于向下的力减速,最终会使其下降。因此,“向下加速”不是一个清晰的问题。

如果你真的想问的是向下运动并且增加速度,你可以在每个enterFrame事件中使用body.getLinearVelocity()并与之前进行比较:

local oldVy = 0

function enterFrame(e)
    local newVx, newVy = myBody:getLinearVelocity()
    if newVy > 0 and newVy > oldVy then
        print 'accelerating downwards'
    end
    oldVy = newVy
end

Runtime:addEventListener('enterFrame', enterFrame)

不能立即检查,但正y速度可能意味着向下运动,否则你将不得不调整测试条件。在任何情况下,条件的一部分是“向下运动”,另一部分是“在向下方向上增加速度”。

请注意,“加速”是你问题中的关键:如果你只想知道它是否向下移动(但可能是匀速运动),则不需要进行newVy > oldVy检查。

2014-02-07 21:57:41