LibGDX - 带有一个摄像头的两个阶段使绘图更快

时间:2016-08-10 12:43:54

标签: libgdx scene2d

我读到我可以使用多个阶段。

我有一个OrthographicCamera有一些自定义函数,但它们并不重要。

我有一个问题:

@Override
public void draw(){
    loginStage.getViewport().setCamera(camera);
    registerStage.getViewport().setCamera(camera);

    loginStage.act(delta);
    loginStage.draw();

    registerStage.act(delta);
    registerStage.draw();
}

这导致所有Actor的动作执行得太快。它以某种方式更新世界两次或其他东西。当我取消注释时:

//registerStage.getViewport().setCamera(camera);

或者这个:

//registerStage.draw();

loginStage表现良好(通常),演员的速度正常。

我应该为两个阶段创建两个摄像头,还是上面的代码有问题?

1 个答案:

答案 0 :(得分:0)

在上面发布的代码之后,我的渲染中有camera.update()

关键在于每个阶段都将相机存储在自身并调用更新:

public void draw () {
    Camera camera = viewport.getCamera();
    camera.update();
}

所以当我们这样做时,我们不需要手动调用更新:

stage.getViewport().setCamera(camera);

相机正在更新两次。