我有一个呈现 PNG 图像的屏幕(BaseScreen 实现 Screen 接口)。单击屏幕时,它将角色移动到触摸的位置(用于测试目的)。
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,触摸时它会在屏幕顶部附近。但是字符显示在底部,因为坐标从左下角开始。
为什么是什么?为什么坐标系颠倒了?我是否使用错误的对象来确定这一点?