Libgdx,正交相机延迟

时间:2014-07-24 12:25:32

标签: android camera libgdx

我在java中使用libgdx库编写赛车游戏。这是2D游戏,摄像机随车移动(汽车始终位于屏幕的中央)。我用的是正交相机。我想在屏幕的左上角始终显示一些文字。问题是屏幕左边缘之间的宽度,当汽车移动得更快时文本正在改变。我想相机会有一些延迟移动到新位置。

这是我的代码:

创建相机:

    _camera = new OrthographicCamera();     
    float widthUnit = _cameraWidth;
    float heightUnit = widthUnit * (float)_screenHeight / (float)_screenWidth;      
    _camera.setToOrtho(false, widthUnit, heightUnit);   

每帧设置相机位置:

    _batch.setProjectionMatrix(_camera.combined);
        _camera.position.set(_visibleRider.getPosition().x, _visibleRider.getPosition().y, 0);          
        _camera.update();   

每一帧都画出文字:

float leftPos = _camera.position.x - _camera.viewportWidth / 2f + 5f;

当我的骑手慢慢行驶时,左边缘与文字之间的距离为5个单位。当我的骑手快速向右侧行驶时,宽度会更大。当驾驶员快速向左侧行驶时宽度较小。我想在屏幕左侧始终显示5个单位,无论相机移动速度有多快。我怎样才能做到这一点?我做错了什么?

1 个答案:

答案 0 :(得分:0)

您始终可以为HUD(文本或其他UI元素)使用单独的阶段。无论相机位置如何,都应该相对于屏幕。

它会简化内容,因为您不需要跟上摄像机位置并每次都计算文本位置。

希望这有帮助。