有一个小问题。无法理解如何解决它。 我正在我的LibGdx游戏中实现用户触摸输入。我的screenSize是下一个:width = 408和height = 272; 当我尝试打印我从方法touchDown获得的值时,我会在屏幕上获得绝对奇怪的数字位置。它们甚至可能超过1000 ...... 如果我的screenSize是408x272,怎么可能呢?
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
System.out.println(screenX + " " + screenY); //For some reasons this gives completely absurd numbers for the positions on the screen.
return true;
}
如果你能帮助我,我们将非常感激。我想我会想念一些简单直白的东西......谢谢。
答案 0 :(得分:0)
很多人会使用Vector3来存储触摸点,并使用Gdx.input
来获取X和Y坐标。结帐Superjumper了解更多详情,特别是updateRunning
功能。
答案 1 :(得分:0)
我唯一能想到的是你的屏幕尺寸不是你想象的那样 - 你是否可以将它与定义你的相机以查看408x272区域混合起来?屏幕上的窗口大小实际上是408x272像素吗?
如果这是问题所在,您需要这样做 - 假设您使用的是OrthographicCamera
:
Vector3 v3 = new Vector3(screenX, screenY, 0);
cam.unproject(v3);
这会将v3.x
和v3.y
设置为您要查找的内容。
如果这不是问题,我会尝试弄清楚奇怪的位置与预期的位置有什么关系 - 它的行为是否像屏幕更大?翻了吗?如果你设法观察到它,可能更容易弄明白。