调整 libGDX 大小后触摸位置不正确

Hyu*_*Lim 5 java android libgdx

我有一个要在屏幕上使用的按钮。但是,当我调整桌面窗口的大小时,触摸坐标本身就会混乱。我不知道如何解决这个问题。

所以首先我正在使用

cam = new PerspectiveCamera();
viewport = new FitViewport(screenWidth, screenHeight, cam);
Run Code Online (Sandbox Code Playgroud)

并叫

viewport.update(width, height, true);
Run Code Online (Sandbox Code Playgroud)

在我的调整大小方法中,以便我的屏幕看起来总是与其原始大小成比例。

对于我的输入

Gdx.input.setInputProcessor(new InputHandler((float) scaleX, (float) scaleY, world));
Run Code Online (Sandbox Code Playgroud)

现在调整窗口大小后,图像位于正确的位置,但触摸坐标不在。这有点难以解释,但我会尽力而为。秤工作正常。但是,由于我使用的是 Fitviewport,因此当我调用 Gdx.graphics.getHeights() 或 .getWidth() 时,它会获取整个屏幕的高度和宽度(包括仅增加一侧时的黑色区域)。因此,这使我的输入比例与整个屏幕成比例。虽然图像通过 Fitviewport 进行说明,并根据其原始大小按比例调整大小。这使我的输入位置与绘制的图像相比,按钮响应太左或向右或向上或向下。我也试过 cam.unproject。我该如何解决这个问题?

我提供了一些日志,希望可以帮助您更好地了解我的情况。

---未调整大小(原始)---

调整大小称为
调整大小 x : 480 y : 800
缩放 x : 1.0 y : 1.0

(按钮原始位置和按钮响应输入的坐标)
缩放前 X : 398 Y : 75
缩放后 X : 398 Y : 75
Gdx 输入 X : 398 Y : 75
cam unproject X : 240.26144 Y : 430.53616

---调整大小后---

调整大小称为
调整大小 x : 807 y : 743
缩放 x : 1.68125 y : 0.92875

- 按钮出现在屏幕上的位置-

缩放前 X : 542 Y : 38
缩放后 X : 322 Y : 40
Gdx 输入 X : 542 Y : 38
cam unproject X : 240.13632 Y : 400.5924

- 按钮响应的触摸坐标 -

缩放前 X : 677 Y : 36
缩放后 X : 402 Y : 38
Gdx 输入 X : 677 Y : 36
cam unproject X : 240.2692 Y : 400.59595

谢谢!

Hyu*_*Lim 0

我终于找到了我的问题的解决方案。问题是我不知道浮点除法。

关联。我需要除以 float/int。这个浮动划分很好地解释了

感谢所有的帮助