【问题标题】:Love2d cursor positionsLove2d 光标位置
【发布时间】:2017-03-14 09:10:55
【问题描述】:

我对 love2d(lua script) 光标函数有疑问。我不想创建一个区域来单击以​​执行操作。

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

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 函数,因为这只是一个测试文件,用于了解所有这些是如何工作的。

谢谢你:)

【问题讨论】:

    标签: for-loop lua love2d


    【解决方案1】:

    你想多了这个问题。你真正想做的是在二维中定义一个最小值和一个最大值,监听鼠标事件,然后检查鼠标位置是否在你的边界内。无需遍历整个范围。

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

    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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-19
      • 2013-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多