Java Libgdx如何设置视口位置?

Java Libgdx如何设置视口位置?,java,libgdx,Java,Libgdx,我知道在libgdx中,stage使用一个定义摄影机的视口。我想在屏幕上的一个小正方形上渲染一个舞台。我尝试使用自定义视口,但只成功设置了它的大小。我还尝试了使用setPosition(intscreenx,intscreeny)方法,但无论我尝试什么,视口似乎总是以屏幕中间为中心。有人知道如何在屏幕上设置视口的位置吗?我认为您的问题不在于设置视口位置,而在于更新它-在更新视口时,您必须将相机居中 stage = new Stage(); viewport = new Exten

我知道在libgdx中,stage使用一个定义摄影机的视口。我想在屏幕上的一个小正方形上渲染一个舞台。我尝试使用自定义视口,但只成功设置了它的大小。我还尝试了使用
setPosition(intscreenx,intscreeny)
方法,但无论我尝试什么,视口似乎总是以屏幕中间为中心。有人知道如何在屏幕上设置视口的位置吗?

我认为您的问题不在于设置视口位置,而在于更新它-在更新视口时,您必须将相机居中

    stage = new Stage();
    viewport = new ExtendViewport(WIDTH, HEIGHT);
    viewport.setScreenPosition(500, 500); //I'm setting viewport's position

    ...

    @Override
    public void render(float delta) 
    {
        ...

        viewport.update(currentWindowWidth, currentWindowHeight, true); //here I'm updateing it with setting camera center

        ...
    }
比较

void update(int screenWidth, int screenHeight, boolean centerCamera)


它调用上面的更新版本,默认为false

似乎我确实忘记了更新。。。我觉得我错过了什么。还有一个问题:如果我不移动相机,只在屏幕的resize()方法中更新视口就足够了吗?我会在render中保持它的更新(为什么不?),但请自己尝试;)我遇到了另一个问题。我原以为视口的setScreenPosition方法允许我将其移动到任何位置,但似乎无论输入什么值,视口都被定位在(0,0)。我不知道为什么会这样。每次更改后我都会更新。
void update(int screenWidth, int screenHeight)