Camera LibGDX-正交摄影机平移和旋转

Camera LibGDX-正交摄影机平移和旋转,camera,libgdx,orthographic,Camera,Libgdx,Orthographic,我正在用LibGDX制作一个2D自上而下的游戏,使用正交摄影机。相机应该跟随玩家,和他一起旋转,等等。我也使用Box2D,这意味着每个精灵都会根据模型坐标和角度进行更新。我想用相机做同样的事情 此代码: Vector3 v = new Vector3(playerModel.getPosition().x, playerModel.getPosition().y, 0); camera.rotateAround(v, Vector3.Z, -playerModel.getAngle() * Ma

我正在用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摄影机?

可以通过在上一个摄影机属性和新摄影机属性之间插值当前帧的摄影机属性来消除摄影机的抖动移动。如果你不使用某种类型的相机,相机的移动是非常不平稳的


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

您将位置和角度设置为与播放器完全同步。你希望它怎样更平滑?为什么没有任何二传手?我甚至不能更改camera.position vector,因为它只是它的最终属性,所以我认为这不是设置相机的正确方法。我不知道为什么会是这样。你仍然可以使用摄影机。位置。设置。。。这基本上和照相机一样。设置位置。。。可以。我猜这是因为这样可以减少正在构建的新向量的数量,并节省一个方法调用,这可能会对移动设备产生影响。