LibGDX中的世界到屏幕坐标

LibGDX中的世界到屏幕坐标,libgdx,scaling,coordinate-transformation,Libgdx,Scaling,Coordinate Transformation,我试图在屏幕上显示地图,并在地图上预定义的特定坐标处放置图钉。当前的问题是当屏幕大小在不同的设备之间变化时,或者当窗口大小改变时,当地图缩放到适合屏幕时,所有针脚的位置都会移动时,在桌面上运行时。我相信有一个明显的原因就是要根据地图的大小来确定位置。有人能给我指出一个正确的方向,当屏幕缩放时,让物体出现在相同的位置吗 您需要用相机取消投影坐标 假设要转换为“屏幕”坐标的坐标称为 screenX和screenY Vector3 vec=new Vector3(screenX,screenY,0);

我试图在屏幕上显示地图,并在地图上预定义的特定坐标处放置图钉。当前的问题是当屏幕大小在不同的设备之间变化时,或者当窗口大小改变时,当地图缩放到适合屏幕时,所有针脚的位置都会移动时,在桌面上运行时。我相信有一个明显的原因就是要根据地图的大小来确定位置。有人能给我指出一个正确的方向,当屏幕缩放时,让物体出现在相同的位置吗

您需要用相机取消投影坐标

假设要转换为“屏幕”坐标的坐标称为 screenX和screenY

Vector3 vec=new Vector3(screenX,screenY,0);
camera.unproject(vec);

现在,您可以使用vec.x和vec.y值。

因此,如果我理解正确,我会将我的世界坐标指定给该向量,然后将该向量传递给摄影机的“未投影”方法。这和x,y,z有什么关系?另外,在我目前的情况下,是否可以使用矢量2,因为它只是在地图上,或者z是如何控制分层的?z是绘图的顺序。如果你在代码中在Y之后画X,X将与Y重叠。你错了。函数
unproject
实际上将屏幕坐标中给定的点转换为世界空间!是的,shapeare,应该是camera.project(请参阅)