1

これは私にとって正しく機能しないサンプル コードです。何か間違っているのでしょうか?

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

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

X=5 と Y=5 (たとえば) の場所で SpiriteBatch に触れると、X 5 でテクスチャが描画されますが、Y は Gdx.graphics.getHeight() - 5px ??? 入力 Y を下に移動すると、テクスチャが上に移動します...

Gdx.input.getX() と Gdx.input.getY() は値を返しています: X=5, Y=5

私がやろうとしているのは、タッチ/移動している入力位置にテクスチャを移動することです。

4

1 に答える 1

4

画面座標は、モデル空間座標と必ずしも同じではありません。カメラの定義はどのように見えますか? (モデル空間から画面へのマッピングを定義するためです。)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

于 2011-10-24T20:56:53.307 に答える