我想让一个精灵移动到我的鼠标坐标,我很幸运,虽然有限。我有以下代码,使精灵正在移动,但它仍然没有移动到我点击的地方,只是相对于它。似乎我在网上找到的代码抵消了鼠标的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);
};
答案 0 :(得分:1)
鼠标输入的坐标相对于屏幕的左上角。因此,您必须根据摄像机位置及其原点计算鼠标在世界中的位置。
您可以手动执行此操作,也可以在此site上找到:
Vector3 worldCoordinates = new Vector3(x, y, 0);
camera.unproject(worldCoordinates);
代码Gdx.graphics.getHeight() - Gdx.input.getY() - sprite.getHeight()/2
用于y位置的原因是,Worlds Y正在成长,但是鼠标Y正在逐渐减少。