2011-10-24 13 views
1

正しく機能していないサンプルコードはありますか?libGDX spiriteBatch.draw()が適切な場所に配置されていません

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

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

Iは、位置X = 5でSpiriteBatchタッチするとYは= 5(例えば)それがX 5に私にテクスチャを描画するが、YはGdx.graphics.getHeight() - で5pxの?? ? Yがダウンして、テクスチャが上に移動し、入力を移動させることにより...

Gdx.input.getX()とGdx.input.getY()の値を返すされている:X = 5、Y = 5

何私は触れる/動いている入力位置にテクスチャを移動するだけです。

答えて

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

関連する問題