Love2d 光标位置

我有一个关于 love2d(lua 脚本) 光标函数的问题。我想要制作一个可以点击的区域来执行某个操作。

我开始用 x 和 y 参数的 for 循环来尝试。我想到的另一个问题是,如果它循环到一个数字/坐标,最终在一像素上结束,那么 love.mouse.get() 将停留在那个坐标上,允许光标最终被点击。

for r = 660, 770 do --x 坐标
mx = love.mouse.getX(r)
end

for f = 99.33, 169.66 do  --y 坐标
my = love.mouse.getY(f)
end

我该如何将两个 for 循环变量(r 和 f) 结合起来呢?

总之,我想点击一个区域执行一个操作。我知道这里没有 love.load、love.update 和 love.draw 函数,因为这只是一个测试文件,用来学习所有这些功能。

谢谢 :)

点赞
用户2505965
用户2505965

你正在过度思考这个问题。你真正想做的是在两个维度上定义一个_最小值_和一个_最大值_,监听鼠标事件,然后检查鼠标位置是否在你的范围内。没有必要循环整个范围。

考虑这个例子中的“游戏”,我们绘制一个简单的红色框,在单击时切换显示左上角的文本。

local box_dims = {
    {660,770},
    {99.33,169.66}
}

local show = false

function love.mousepressed(x,y)
    if
        x> = box_dims [1] [1] and
        x <= box_dims [1] [2] and
        y> = box_dims [2] [1] and
        y <= box_dims [2] [2] then

        show = not show
    end
end

function love.draw()
    love.graphics.setColor(255,0,0,255)

    love.graphics.rectangle('fill',
        box_dims [1] [1],box_dims [2] [1],
        box_dims [1] [2] - box_dims [1] [1],
        box_dims [2 ] [2] - box_dims [2] [1]
    )

    if show then
        love.graphics.print('hello world',10,10)
    end
end

查看文档以决定哪种鼠标事件适合你。

2016-11-01 12:52:34