鼠标位置偏移相机位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了鼠标位置偏移相机位置相关的知识,希望对你有一定的参考价值。

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

我试过从鼠标位置减去相机位置(定义为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

以上是关于鼠标位置偏移相机位置的主要内容,如果未能解决你的问题,请参考以下文章

裁剪代码向右偏移,而不是鼠标位置

基于相机高度的图片位置偏移

Solr 高亮是不是还可以指示返回的片段在原始字段中的位置或偏移量?

获取元素大小偏移量及鼠标位置

计算在鼠标光标位置放大的视图偏移

使用正交相机从鼠标位置获取 Three.js 世界坐标