我对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函数,因为这只是一个测试文件来了解这一切是如何工作的。
答案 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
查看文档以确定适合您的鼠标事件。