Camera 在摄影机平移和缩放后计算鼠标位置

Camera 在摄影机平移和缩放后计算鼠标位置,camera,libgdx,2d,Camera,Libgdx,2d,几个小时来一直在努力解决一个工作公式 我正在使用Libgdx摄影机类渲染一个二维自上而下的世界。相机在x轴和y轴上移动,并使用其缩放参数进行放大和缩小 我希望能够准确地点击世界,无论相机的位置和变焦是什么。因此,即使当WorldPoint50,70转换为ScreenPoint50,90时,当我将相机转换为0,20并保持缩放为1时,我仍然希望能够单击ScreenPoint50,90并返回WorldPoint50,70。你知道我的意思吗 这是我目前的职责 Vector2 adjustedMouseI

几个小时来一直在努力解决一个工作公式

我正在使用Libgdx摄影机类渲染一个二维自上而下的世界。相机在x轴和y轴上移动,并使用其缩放参数进行放大和缩小

我希望能够准确地点击世界,无论相机的位置和变焦是什么。因此,即使当WorldPoint50,70转换为ScreenPoint50,90时,当我将相机转换为0,20并保持缩放为1时,我仍然希望能够单击ScreenPoint50,90并返回WorldPoint50,70。你知道我的意思吗

这是我目前的职责

Vector2 adjustedMouseInput(float screenX, float screenY) 
{
    screenX += (cam.position.x * cam.zoom) - (screenWidth/2);
    screenY += (cam.position.y * cam.zoom) - (screenHeight/2);

    screenX *= cam.zoom;
    screenY *= cam.zoom;

    return new Vector2(screenX, screenY);
}
我主要是通过试错才做到这一点的,它不起作用,但我觉得有些是对的,你知道吗?我已经尝试过缩放*位置和屏幕宽度/Sqrtpi的每一种排列,所以我对它感到厌倦,需要有人在做过这件事之前告诉我正确的公式是什么


zoom参数变高时缩小,相机位置默认为屏幕中心,因此-screenwidth/2。。。我想这就是我们需要知道的全部

camera.unprojectscreenPosa苦乐参半的结局。。。非常感谢。