Libgdx坐标系中Gdx.input.getX()返回值不正确。

3
所以,我现在拿着一部屏幕宽度为800px的手机,Gdx.graphics.getWidth()也返回了800,这是正确的。
但是当我通过Gdx.input.getX()获取坐标时,在触摸屏幕左侧最大值只能得到约780,而在右侧只有20左右。
因此,所有我的坐标都是错误的,因此所有按钮等都不能正常工作。
你知道发生了什么吗?

1
你确定你是在屏幕的极端末端轻触吗(这几乎是不可能的)? 通常情况下,你的手指很大,远比20像素宽。 - UeliDeSchwert
你根本不需要使用 Gdx.input.getX()。通常,对于按钮,你会使用 scene2d,它具有按钮并正确地处理所有输入事件。 - noone
ManuToMatic,我让它在所有帧上输出坐标,然后我慢慢地在手机边缘移动手指,但它输出的最后一个坐标是780而不是应该是800。 - user3752513
没有人,我的按钮只是纹理,不是“按钮”。 - user3752513
2个回答

0
尝试反投影坐标。
Vector3 vec=new Vector3(Gdx.input.getX(),Gdx.input.getY(),0);
camera.unproject(vec);
// now use vec.x and vec.y instead of gdx.input.get...

你用的是什么手机? - Boldijar Paul

0

你的坐标是从另一个方向计算出来的,因此你必须使用

float ClickY = GameHeight - Gdx.input.getY();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接