Lua 鼠标位置由相机位置偏移

Lua 鼠标位置由相机位置偏移,lua,love2d,hexagonal-tiles,Lua,Love2d,Hexagonal Tiles,在我的游戏中,我需要得到鼠标下方的六边形。在我添加一个摄像系统,使我有更大的六边形网格离开屏幕之前,这个系统工作得很好。如果我移动相机,它会开始表现出奇怪的行为,并且没有得到正确的六边形 我试着从鼠标位置减去相机位置(定义为cam.x和cam.y),从cam位置减去鼠标位置。显然,我不知道在这种情况下我应该怎么做 您可以在下面看到相关代码 if button==3 then local hovering=hexGrid:containingHex(x,y)

在我的游戏中,我需要得到鼠标下方的六边形。在我添加一个摄像系统,使我有更大的六边形网格离开屏幕之前,这个系统工作得很好。如果我移动相机,它会开始表现出奇怪的行为,并且没有得到正确的六边形

我试着从鼠标位置减去相机位置(定义为cam.x和cam.y),从cam位置减去鼠标位置。显然,我不知道在这种情况下我应该怎么做

您可以在下面看到相关代码

        if button==3 then
            local hovering=hexGrid:containingHex(x,y) -- get hexagon at mouse position onclick
            if hovering then
                local data=hexes.getHexagon(hovering)
                data["text"]=data["text"]=="1" and "2" or "1" 
            end             
        end

我使用的摄像头模块gamera有两个功能,分别叫做“toScreen”和“toWorld”,后者解决了我的问题

我得到鼠标位置(这段代码在love.update中),然后使用toWorld将其转换为世界坐标

local mx,my=love.mouse.getPosition()
local worldMx,worldMy = cam:toWorld(mx,my) -- convert mouse positions to their world coordinates