将相机定位在与玩家的偏移处

Positioning camera at offset to player

使用 libGdx,所以基于 Java,我如何定位相机,让玩家在面向右侧时出现在屏幕左侧,面向右侧时出现在屏幕右侧?

玩家可以在初始视口之外左右移动,所以当摄像机跟随玩家 id 时,仍然会像上面的规则一样被强制执行。

下面的代码将玩家面向左时放置在屏幕左侧,面向右时相机似乎保持静止。

private OrthographicCamera camera = new OrthographicCamera();
camera.setToOrtho(false, 80, 48);

if (getPlayer().getDirection() == Direction.RIGHT){

    camera.position.set(
        new Vector3(camera.viewportWidth / 4, camera.position.y, camera.position.z));
}else{
    camera.position.set(
        new Vector3(camera.viewportWidth / 4 * 3, camera.position.y, camera.position.z));
}

目标

您当前的代码根据您的角色移动的方向将相机固定到某个点。您需要相对于玩家角色锁定相机。

用一点点伪代码向右遍历的例子

camera.position.set(new Vector3(player.position.x + deltaForCamera.x, player.position.y + deltaForCamera.y, camera.position.z));

您可以测试哪些值最适合您的场景。类似的方法适用于在相反方向上遍历时,但您只需要计算 player/camera 关系的增量。

记得做`camera.Update();

干杯!