【问题标题】:LibGDX Camera and CoordinatesLibGDX 相机和坐标
【发布时间】:2015-06-22 22:16:17
【问题描述】:

我正在编写游戏,但遇到了关于相机的问题 我已经让相机跟随一个物体,但它弄乱了坐标。似乎无论我点击哪里,就好像我总是与同一个坐标平面进行交互。例如,如果我点击点 (500,500)(从屏幕的角度来看),世界会做出正确的反应。但是,如果我要移动玩家 (+200,+200),相机会相应地移动,但如果我随后点击 (500,500)(从屏幕的角度来看),而不是在 (700,700) 处做出反应,游戏仍然会在 (500,500) 处做出反应,或者从屏幕的角度来看, (300,300)。 一些照片如下。绿色圆圈是相机和游戏坐标对齐的对象位置。红色圆圈是我点击的地方。蓝色圆圈是游戏中点击注册的地方 ![正常]http://i.imgur.com/OatfEIk.png 在这里,我移动了对象,使相机的坐标与游戏的坐标相匹配。点击一个点在游戏中正确注册。 ![玩家直立]http://i.imgur.com/5i0thwi.png 在这里,我将对象移动到对齐位置的右侧。在对象下方单击会在游戏中记录在原始位置下方的单击。相机的视角很不稳定;如何解决?

【问题讨论】:

    标签: camera libgdx coordinate


    【解决方案1】:

    如果您使用Gdx.input.get 来轮询输入,它将始终为您返回屏幕坐标(原点位于左上角)。如果你想要世界坐标,你可以使用Camera.unproject(),它将给定的屏幕坐标转换为世界空间。像这样的:

    Vector3 touchPoint = new Vector3(Gdx.input.getx(), Gdx.input.gety(), 0);
    camera.unproject(touchPoint);
    

    【讨论】:

    • 我正在使用 InputProcessor 接口,特别是用于输入的 touchDown 方法。我已经“反转”了 y 坐标,使原点位于左下角。这种情况我该怎么办?
    • 你可以做我上面做的,把Gdx.input.getx(), gdx.input.gety()替换成screenXscreenYtouchDown()方法中给你的screenY。要获取您点击的世界坐标,您可以使用touchPoint.x/touchPoint.y
    猜你喜欢
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 2015-09-02
    • 1970-01-01
    相关资源
    最近更新 更多