У меня есть экран (BaseScreen реализует интерфейс Screen), который отображает 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), а координаты для ввода касания начинаются с верхнего левого угла. Поэтому проблема, с которой я сталкиваюсь, заключается в том, что я нажимаю на нижнюю правую сторону, она перемещает изображение в верхнем правом углу. Мои координаты могут быть X 675 Y 13, которые при касании будут находиться в верхней части экрана. Но символ отображается внизу, так как координаты начинаются с левого нижнего положения.
Почему? Почему системы координат обращаются вспять? Я использую неправильные объекты для определения этого?