У меня проблема в LibGDX, где, когда я вызываю Gdx.input.getY(), он выбирает пиксель, который находится с другой стороны приложения относительно центра экрана.Gdx.input.getY перевернулся
public class Main extends ApplicationAdapter {
private SpriteBatch batch;
private Texture img;
private OrthographicCamera camera;
int xPos;
int yPos;
private Vector3 tp = new Vector3();
BitmapFont font;
@Override
public void create() {
batch = new SpriteBatch();
img = new Texture("crosshair.png");
camera = new OrthographicCamera();
camera.setToOrtho(false, 1280, 720);
font = new BitmapFont();
}
@Override
public void render() {
yPos = Gdx.input.getY();
xPos = Gdx.input.getX();
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.unproject(tp.set(xPos, yPos, 0));
batch.begin();
font.draw(batch,xPos + " , " + yPos, Gdx.input.getX() - 25, Gdx.input.getY() - 5);
batch.draw(img, xPos, yPos);
batch.end();
}
@Override
public void dispose() {
batch.dispose();
img.dispose();
}
Так что вычтите это значение из общей высоты. – hexafraction
верхний левый 0,0, как работает OpenGL. –
Оба ответа верны, только если окно и камера не изменяют размер. Правильный способ сделать это - использовать функцию camera.unproject() для преобразования координат экрана в мировые координаты. – Tenfour04