将相机定位在与玩家的偏移处
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();
干杯!
使用 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();
干杯!