【发布时间】:2014-08-09 19:35:04
【问题描述】:
我有一个我想在我的屏幕上使用的按钮。但是,当我调整桌面窗口的大小时,触摸坐标本身就会混乱。我不知道如何解决这个问题。
所以首先我正在使用
cam = new PerspectiveCamera();
viewport = new FitViewport(screenWidth, screenHeight, cam);
被叫
viewport.update(width, height, true);
在我的 resize 方法中,我的屏幕看起来总是与其原始大小成正比。
我的意见
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
cam unproject 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
谢谢!
【问题讨论】:
-
从更新中删除
true。 -
@noone nope.. 不起作用
-
等等……你说的是按钮,但你有一个
PerspectiveCamera,嗯?? -
@noone 是的,我有一个透视相机,因为即使我调整窗口大小,我也希望我的屏幕看起来缩放到原来的大小。如果你有更好的主意,请帮助我 =(我展示了我有一个透视相机是因为我认为这就是导致我的体重秤变得古怪的问题
-
不要使用 PerspectiveCamera,使用 OrthographicCamera 和 UI。即使这样,您也可以“缩放”。但是要针对不同的屏幕尺寸调整大小,您应该使用
Viewport。