LibGDX (по умолчанию) для рендеринга использует систему координат, где 0 находится в нижней части экрана, и чем больше вы поднимаетесь, координата Y увеличивается.
Также, когда вы читаете входные координаты (касания, перемещения .. .) вы получаете экранные координаты, но когда вы визуализируете свою графику, вы используете «мировые» координаты. Они находятся в 2 разных системах координат, поэтому для преобразования из экрана в мир вам нужно использовать вызов camera.unproject (). Должно быть как:
Vector3 touchPos = new Vector3(Gdx.input.getX(), Gdx.input.getY(), 0);
camera.unproject(touchPos);
, а затем используйте touchPos.x
и touchPos.y
.
Аналогичный вопрос задается здесь, чтобы вы могли найти больше ответов там:
Правильное использование unProject в Java. Libgdx