如何在Love2D中使用定位的鼠标点击功能?

我正在尝试让用户单击鼠标左键在 200x300 处时更改变量。我在网上搜索了教程,但找不到解决方法。

function love.load()
    medium = love.graphics.newFont(45)
    small = love.graphics.newFont(25)
    micro = love.graphics.newFont(14)

    StartGame = false
end

function love.draw()
    love.graphics.setColor(255, 0, 0)
    love.graphics.setFont(small)
    love.graphics.print("Play", 200, 300)
end

function love.mousepressed(x, y, button)
    if love.mousepressed( 200, 300, 'l' ) then
        StartGame = true
    end
end

function love.mousereleased(x, y, button)
end

function love.quit()
end
点赞
用户2726734
用户2726734

这将在用户在200、300处点击下降时设置变量。

function love.mousepressed(x, y, button)
   if button == "l" and x == 200 and y == 300 then
       StarGame = true
   end
end

但是这可能对用户来说过于苛刻,要求用户完美地选择单个点。因此,下面的代码在点(200,300)周围添加了10个像素,使其更容易点击。

local function inCircle(cx, cy, radius, x, y)
    local dx = cx - x
    local dy = cy - y
    return dx * dx + dy * dy <= radius * radius
end

function love.mousepressed(x, y, button)
   if button == "l" and inCircle(200, 300, 10, x, y) then
      StartGame = true
   end
end

尝试更改“10”以找到适合的感觉。

2015-02-18 04:27:07
用户16142052
用户16142052

要选择一个完美的点,请使用下面的代码

function love.mousepressed(x, y, button)
   if button == 1 and x>200 and x<230 and y>280 and y<320 then
   StartGame = true
end
end
2021-06-06 07:57:49