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



我正忙着使用Love2D引擎创建一个程序,用户单击该程序并返回鼠标当前位置的坐标。但是,在返回另一个位置之前,用户必须"取消单击"鼠标,然后单击下一个所需位置。

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

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,您可能也想查看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

最新更新