2015-04-02 136 views
1

我想讓一個精靈移動到我的鼠標座標上,雖然運行有限,但我很幸運。我有下面的代碼,它使精靈正在移動,但它仍然沒有移動到我點擊的地方,只是相對於它。似乎我在網上找到的代碼抵消了鼠標的Y位置(減),但不是X?我想知道爲什麼?謝謝左鍵點擊指針下精靈的鼠標座標偏移補償問題

if(Gdx.input.isButtonPressed(Input.Buttons.LEFT)){ 
     sprite.setPosition(Gdx.input.getX() - sprite.getWidth()/2, 
       Gdx.graphics.getHeight() - Gdx.input.getY() - sprite.getHeight()/2); 
}; 

回答

1

鼠標輸入的座標是相對於屏幕的左上角。所以你必須根據相機的位置和原點來計算鼠標在世界上的位置。

您可以手動做到這一點還是我對這個site發現:

Vector3 worldCoordinates = new Vector3(x, y, 0); 
    camera.unproject(worldCoordinates); 

爲什麼在代碼Gdx.graphics.getHeight() - Gdx.input.getY() - sprite.getHeight()/2用於y位置的原因,是世界Y的成長,但鼠標Y是成長下來。