libGDX spiriteBatch.draw () не в нужном месте - PullRequest
1 голос
/ 25 октября 2011

Вот пример кода, который не работает правильно для меня, я делаю что-то не так?

textureCharacter = new Texture(Gdx.files.internal("data/character1.png")); 

if (Gdx.input.isTouched()) {
    spriteBatch.draw(textureCharacter, Gdx.input.getX(), Gdx.input.getY());
}

Когда я касаюсь SpiriteBatch в месте X = 5 и Y = 5 (например,) это рисует мне текстуру в X 5, но Y это Gdx.graphics.getHeight () - 5px ???При перемещении ввода Y вниз текстура перемещается вверх ...

Gdx.input.getX () и Gdx.input.getY () возвращают значения: X = 5, Y = 5

То, что я пытаюсь сделать, это просто переместить текстуру в позиции ввода, которые я касаюсь / двигаю.

1 Ответ

4 голосов
/ 25 октября 2011

Координаты экрана не обязательно совпадают с координатами пространства модели.Как выглядит ваше определение камеры?(Поскольку это определяет отображение пространства модели на экран.) Вызов Gdx.intput.getX() возвращает точку в пространстве экрана.

Ось Y (по умолчанию) указывает в противоположных направлениях на экране и в пространстве GL.(растет вниз от верхней части экрана в координатах экрана и увеличивается до верхней части экрана в координатах GL).Вы можете установить камеру в соответствии с координатами экрана или отобразить координаты касания в координаты GL.

См. Звонок на camera.unproject() в: https://code.google.com/p/libgdx/source/browse/trunk/tests/gdx-tests/src/com/badlogic/gdx/tests/examples/MoveSpriteExample.java

...