我正在使用正交相机在 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 相机?