Love2d光标位置

时间:2016-11-01 08:35:36

标签: for-loop lua love2d

我对love2d(lua脚本)游标功能有疑问。我不想让一个区域点击以便采取行动。

我开始研究x和y参数中的for循环。我想到的唯一另一个问题是它是否会通过一个数字/坐标的for循环并完成一个数字,而love.mouse.get()将最终打开并允许光标最终被点击最后一个坐标(一个像素)。

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

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

我如何将两个for循环变量(r和f)组合在一起。

为了总结一切,我希望能够点击一个区域并采取行动。我知道没有love.load,love.update和love.draw函数,因为这只是一个测试文件来了解这一切是如何工作的。

谢谢:)

1 个答案:

答案 0 :(得分:0)

你正在过度思考这个问题。您真正想要做的是在两个维度中定义最小最大,监听鼠标事件,然后检查鼠标位置是否在您的边界内。无需遍历整个范围。

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

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

查看文档以确定适合您的鼠标事件。

相关问题