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



有一个小问题。无法理解如何解决它。我在我的LibGdx游戏中实现用户触摸输入。我的屏幕尺寸是下一个:宽度= 408,高度= 272;当我试图打印从方法touchDown获得的值时,我得到了屏幕上位置的绝对奇怪的数字。他们甚至可以超过1000人……如果我的屏幕尺寸是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;
}
如果你能帮助我,我将不胜感激。我想我错过了一些简单直接的东西……谢谢你。

我唯一能想到的是你的屏幕尺寸不是你想象的那样-你是否可能将其与定义相机以查看408x272区域混淆?屏幕上窗口的大小实际上是408x272像素吗?

如果这是问题,您需要这样做-假设您正在使用OrthographicCamera:

Vector3 v3 = new Vector3(screenX, screenY, 0);
cam.unproject(v3);

这将设置v3.xv3.y为您正在寻找的。

如果这不是问题,我会试着弄清楚奇怪的位置是如何与预期的位置相关的——它的行为是否像屏幕更大?它翻转了吗?如果您设法观察到这一点,可能会更容易弄清楚。

很多人将使用Vector3来存储接触点,并将使用Gdx.input来获得X和Y坐标。查看Superjumper了解更多细节,特别是updateRunning函数。

相关内容

  • 没有找到相关文章

最新更新