有一个小问题。无法理解如何解决它。我在我的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.x
和v3.y
为您正在寻找的。
如果这不是问题,我会试着弄清楚奇怪的位置是如何与预期的位置相关的——它的行为是否像屏幕更大?它翻转了吗?如果您设法观察到这一点,可能会更容易弄清楚。
很多人将使用Vector3来存储接触点,并将使用Gdx.input
来获得X和Y坐标。查看Superjumper了解更多细节,特别是updateRunning
函数。