我正在编写游戏,但我遇到了有关相机的问题 我让相机跟着一个物体,但它弄乱了坐标。似乎无论我在哪里点击,都好像我总是在相同的坐标平面上进行交互。例如,如果我点击该点(500,500)(从屏幕的角度来看),世界将做出正确的反应。但是,如果我要移动播放器(+ 200,+ 200),相机会相应地移动,但如果我那么点击(500,500)(从屏幕的角度来看),而不是在(700,700)反应,游戏仍然会在(500,500)反应,或者从屏幕的角度来看(300,300)。 一些照片在下面。绿色圆圈是对象与游戏坐标对齐的位置。红色圆圈是我点击的地方。蓝圈是点击在游戏中注册的地方 ![正常] http://i.imgur.com/OatfEIk.png 在这里,我移动了物体,使相机的坐标与游戏的坐标相匹配。单击一个点可正确注册游戏。 ![玩家直立] http://i.imgur.com/5i0thwi.png 在这里,我已将对象移动到对齐位置的右侧。单击对象下方会在原始位置下方的游戏中注册单击。相机的视角很不稳定;如何解决这个问题?
答案 0 :(得分:1)
如果您使用Gdx.input.get
轮询输入,它将始终从屏幕返回坐标(原点位于左上角)。如果你想要世界坐标,你可以使用Camera.unproject()
将给定的屏幕坐标转换为世界空间。像这样:
Vector3 touchPoint = new Vector3(Gdx.input.getx(), Gdx.input.gety(), 0);
camera.unproject(touchPoint);