小编Hyu*_*Lim的帖子

调整 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 : …

java android libgdx

5
推荐指数
1
解决办法
1333
查看次数

libGDX - 如何删除屏幕上现有的 spritebatch?

所以我一直在研究和试验一些东西,但不太清楚如何删除屏幕上预先存在的 spriteBatch。

所以基本上我已经开始了

batcher.begin();
(blah blah blah)
AssetLoader.font.draw(batcher, "Hey guys", x, y);
Run Code Online (Sandbox Code Playgroud)

像这样的东西...现在我希望在屏幕上删除/删除/取消绘制这个东西...我如何在不使用 if 语句的情况下做到这一点,因为..如果我开始使用 If 语句,一切都会变得非常混乱。

非常感谢!

java android libgdx

1
推荐指数
1
解决办法
2647
查看次数

标签 统计

android ×2

java ×2

libgdx ×2