我有一個呈現PNG圖像的屏幕(BaseScreen實現了屏幕界面)。點擊屏幕時,它將角色移動到觸摸的位置(用於測試目的)。渲染和觸摸輸入之間的libgdx座標系差異
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,觸摸時會靠近屏幕的頂部。但角色顯示在底部,因爲座標從左下角開始。
爲什麼是什麼?爲什麼座標系顛倒了?我是否使用錯誤的對象來確定這一點?
有很多這樣的問題在那裏,很多答案說,你需要做的camera.unproject的,但我當我與libGDX開始我根本不知道該怎麼做,然後(即使用新的矢量座標)。這是我當時發現的唯一答案,指出了這一點,非常感謝,很好的答案! – 2015-03-13 10:32:42