我有一个比视口大的游戏地图,所以相机会四处移动。播放器还可以放大/缩小相机。当点击屏幕上的任何地方时,我得到设备屏幕坐标。因此,如果我有一个1920x1080的屏幕并点击右上角我会得到(1920,1080)而如果我有一个1280x720的屏幕,则在同一个地方点击会得到(1280,720)。
我的视口(虚拟屏幕大小)设置为1280x720。如果我使用cam.unproject(Vector2)
或viewport.unproject(Vector2)
,我会得到相应的世界坐标。因此,如果相机未翻译或缩放。在任何屏幕尺寸上点击左上角都会得到(1280,720)。但是如果我将地图向上滚动到右边,我会得到比(1280,720)更大的值。事实上,我得到(1280 + camera.position.x, 720 + camera.position.y)
。使用缩放使事情变得更复杂,我必须手动计算我正在寻找的东西。
我的问题是,如何获取视口坐标而不是世界坐标? LibGDX能解决这个问题吗?