鼠标位置按相机位置偏移



在我的游戏中,我需要获取鼠标下方的六边形。在我添加摄像头系统以允许我拥有更大的六边形网格之前,这工作正常。如果我移动相机,它会开始表现得很奇怪,没有得到正确的六边形。

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

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

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

相关内容

  • 没有找到相关文章

最新更新