2014-08-31 47 views
0

我試圖在點擊時將精靈移動到鼠標位置。使用鼠標座標進行雪碧定位

然而,座標我從Gdx.input.getX()Gdx.input.getY()得到的是相對左上角,和SpritesetPosition()方法是相對於左下角

爲什麼會這樣,以及如何將鼠標定位在點擊鼠標的位置?

回答

2

屏幕座標來自Android並使用Y向下參照系。默認情況下,相機在libgdx中使用Y-up引用框架(因爲常規OpenGL也使用Y-up框架引用)。

如果您更喜歡Y向下參照系,則可以使用camera.setToOrtho(true);方法將其顛倒。如果來自Flash背景,您可能更喜歡這個。

但一般來說,將屏幕座標從觸摸轉換爲相機座標系的安全方法是執行以下操作。無論您使用何種平臺以及您爲相機選擇何種座標系,這都可以工作。例如,對於某些類型的遊戲,您甚至不會使用與屏幕分辨率相匹配的相機,但您仍然希望將屏幕座標轉換爲相機座標。此外,如果您有一臺在世界各地移動的相機,則會自動將觸點更改爲世界座標。

tempVector3.set(Gdx.input.getX(), Gdx.input.getY(), 0); 
camera.unproject(tempVector3); 
//now tempVector3 contains the touch point in camera coordinates. 

它使用Vector3,因爲這也適用於3D相機。