LibGdx TouchInput为屏幕上的位置提供奇怪的数字

时间:2014-03-18 17:51:08

标签: android input libgdx

有一个小问题。无法理解如何解决它。 我正在我的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;
}

如果你能帮助我,我们将非常感激。我想我会想念一些简单直白的东西......谢谢。

2 个答案:

答案 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.xv3.y设置为您要查找的内容。

如果这不是问题,我会尝试弄清楚奇怪的位置与预期的位置有什么关系 - 它的行为是否像屏幕更大?翻了吗?如果你设法观察到它,可能更容易弄明白。