Различия в системе координат libgdx между рендерингом и сенсорным вводом
У меня есть экран (BaseScreen реализует интерфейс экрана), который отображает изображение в формате PNG. При нажатии на экран он перемещает персонажа в положение, к которому он прикоснулся (в целях тестирования).
public class DrawingSpriteScreen extends BaseScreen {
private Texture _sourceTexture = null;
float x = 0, y = 0;
@Override
public void create() {
_sourceTexture = new Texture(Gdx.files.internal("data/character.png"));
}
.
.
}
Во время рендеринга экрана, если пользователь коснулся экрана, я беру координаты касания, а затем использую их для рендеринга изображения персонажа.
@Override
public void render(float delta) {
if (Gdx.input.justTouched()) {
x = Gdx.input.getX();
y = Gdx.input.getY();
}
super.getGame().batch.draw(_sourceTexture, x, y);
}
Проблема заключается в том, что координаты для рисования изображения начинаются с левой нижней позиции (как отмечено в LibGDX Wiki), а координаты для сенсорного ввода начинаются с верхнего левого угла. Поэтому проблема, с которой я столкнулся, заключается в том, что я щелкаю внизу справа, а изображение перемещается вверху справа. Мои координаты могут быть X 675 Y 13, которые на ощупь будут в верхней части экрана. Но символ показан внизу, поскольку координаты начинаются слева внизу.
Почему что? Почему системы координат меняются местами? Я использую неправильные объекты, чтобы определить это?