如何确定显示中的物体何时停止移动 lua

How to determine when bodies in display stop moving in lua

我有一些身体在显示中使用物理学移动。我想确定身体何时停止移动,以便调用一个函数来采取行动。 我尝试了这样的功能:

function ball:stopMove ()
    if condition then
        print("Game Over!!!")
    end
end

这不会被调用。我怎样才能正确地做到这一点?

我不知道有任何与运动相关的事件。所以我想你必须经常轮询对象速度是否为零。

您可以here了解如何实现您自己的回调。基本上,您可以创建一个代理 table 作为过滤器,筛选某些操作并对其进行操作。

如果您不想这样做,假设您创建了一个 physics body, the function you are looking for is object:getLinearVelocity。如果对象的 x 和 y 速度为零,则主体已停止移动。当然,您需要在每次更新时检查这一点。

或者,如果您不使用物理体,则可以自己计算。您需要做的就是跟踪对象的最后一个 x 和 y 位置,如果值相同,则对象自上次更新以来没有移动。