LibGDX - 正交相机平移和旋转

时间:2013-10-25 10:10:19

标签: camera libgdx orthographic

我正在使用正交相机在LibGDX制作2D自上而下的游戏。相机应该跟随玩家,与他一起旋转等。我也使用Box2D,这意味着每个精灵都会通过模型坐标和角度进行更新。我想用相机做同样的事情。

此代码:

Vector3 v = new Vector3(playerModel.getPosition().x, playerModel.getPosition().y, 0);
camera.rotateAround(v, Vector3.Z, -playerModel.getAngle() * MathUtils.radiansToDegrees);
camera.translate(deltaMove);
camera.update();

仅给出相对平移和旋转 - 相对于相机的当前位置和角度。虽然这有效,但我认为这不是最好的,是吗?:

Vector3 v = new Vector3(playerModel.getPosition().x, playerModel.getPosition().y, 0);
camera.up.x = (float) Math.cos(playerModel.getAngle());
camera.up.y = (float) Math.sin(playerModel.getAngle());
camera.position.x = v.x;
camera.position.y = v.y;
camera.update();

使用正交相机是否可以更顺畅地进行,还是应该使用classis 3D相机?

1 个答案:

答案 0 :(得分:0)

您可以通过在最后一个摄像机属性和新摄像机属性之间插入当前帧的摄像机属性来消除摄像机的抖动。如果你不使用某种interpolation,相机的动作会非常生涩。

我希望这会有所帮助,我会讨论如何实现这样的改变,但似乎有点超出了这个问题的范围。