等待用户抬起鼠标 - 不工作:Love2D

Waiting for user to lift mouse - not working: Love2D

我正忙于使用 Love2D 引擎创建一个程序,用户在其中单击它 returns 鼠标当前位置的坐标。然而,在返回另一个位置之前,用户必须 'un-click' 鼠标,然后单击下一个所需位置。

我在下面粘贴了应该处理此问题的脚本:

function scripts.waitForMouseLift()
    while love.mouse.isDown("l", "r") do
        --Stays in a loop until user releases mouse, then lets the program continue
    end
end

这在技术上应该可行,因为循环会在鼠标单击被解除时结束,但它只会无限循环地进行,而不管我之前单击了哪个鼠标按钮。

所以,我的问题由两部分组成:首先,有没有办法让这个方法起作用?其次,对于这个问题,有什么替代方案或者更好的解决方案吗?

Love 为此使用回调,而您正在寻找的也是 love.mousereleased and you might want to look at love.mousepressed。这些是您添加到脚本中的函数,只要用户单击(或释放)鼠标按钮,就会调用该函数。因此,您不必不断检查自己以查看鼠标是否更改了状态,也不能在繁忙的循环中等待它,因为您需要将控制权交还给 Love,以便它有机会更新鼠标状态。

function love.mousepressed(x, y, button)
  -- do something with x, y
  print("Mouse Pressed", button, "at", x, y)
end


function love.mousereleased(x, y, button)
  print("Mouse Released", button, "at", x, y)
end