[英]Mouse coordinates offset compensation issue for sprite under pointer on left-clicking
我试图让一个精灵移动到我的鼠标坐标,虽然运气有限,但我很幸运。 我有以下代码可以使精灵移动,但相对于它,它仍然没有移动到我单击的位置。 似乎我在网上找到的代码可以抵消鼠标的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);
};
鼠标输入的坐标相对于屏幕的左上角。 因此,您必须根据摄像头的位置及其原点来计算鼠标在世界上的位置。
您可以手动执行此操作,或者我在此站点上找到了:
Vector3 worldCoordinates = new Vector3(x, y, 0);
camera.unproject(worldCoordinates);
在代码Gdx.graphics.getHeight() - Gdx.input.getY() - sprite.getHeight()/2
中使用y位置的原因是,Worlds Y在增长,而鼠标Y在增长下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.