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

标签 java android libgdx

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

所以首先我正在使用

cam = new PerspectiveCamera();
viewport = new FitViewport(screenWidth, screenHeight, cam);

并调用

viewport.update(width, height, true);

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

我的意见

Gdx.input.setInputProcessor(new InputHandler((float) scaleX, (float) scaleY, world));

现在调整窗口大小后,图像位于正确的位置,但触摸坐标不正确。这有点难以解释,但我会尽力而为。体重秤工作正常。但是,由于我使用的是 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
凸轮取消项目 X:240.26144 Y:400.53613

---调整后---

调整大小
调整大小 x : 807 y : 743
比例 x:1.68125 y:0.92875

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

缩放前 X:542 Y:38
缩放后 X:322 Y:40
Gdx 输入 X : 542 Y : 38
凸轮取消项目 X:240.13632 Y:400.5924

-按钮响应的触摸坐标-

缩放前 X:677 Y:36
缩放后 X:402 Y:38
Gdx 输入 X:677 Y:36
凸轮取消项目 X:240.2692 Y:400.59595

谢谢!

最佳答案

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

link .我需要划分 float/int。这个 float 解释的很好

谢谢大家的帮助

关于java - 调整 libGDX 大小后触摸位置不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25222304/

相关文章:

Android gradle 构建错误 "finished with non-zero exit value 42",这是什么意思,我该如何解决?

java - <LibGDX> 如何从同一文件加载多个纹理?

java - 接口(interface)常量初始化的条件

用于防止重复订单的 Java 同步选项(文件、数据库锁定?)

java - Windows 驱动程序安装程序,它也安装 java native 库

android - 更好地重新创建 ListView 适配器或清除并重新填充?

Android AppWidget 在某些手机上不显示

android - 将 LibGdx 库与现有的 android 项目一起使用?

java - 如何将小部件添加到 scene2d.ui 对话框(文本字段等)?

java - 从相应的列标题节点获取 javafx TableColumn