1
我正在使用正交相机在LibGDX制作2D自上而下的游戏。相机应该跟随玩家,与他一起旋转等。我也使用Box2D,这意味着每个精灵都由模型坐标和角度更新。我想对相机做同样的事情。LibGDX - Orthographic相机翻译和旋转
此代码:
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相机?
您设置了与玩家完全同步的位置和角度。你想如何更流畅? – noone
为什么没有它的setter?我甚至不能改变camera.position矢量(因为它是最终的)只有它的属性,所以我认为这不是设置相机的正确方法。没关系:) – chriemmy
我不知道为什么它是这样的。你仍然可以使用与camera.setPosition(...)基本相同的camera.position.set(...)。我想这是因为这样可以减少正在构建的新“向量”的数量,并节省一个方法调用,这可能会在移动设备上发挥作用。 – noone