【问题标题】:Libgdx How to set viewport position?Libgdx 如何设置视口位置?
【发布时间】:2015-09-08 11:59:36
【问题描述】:

我知道在 libgdx 中,舞台使用定义相机的视口。我想在屏幕上的一个小方块上渲染一个舞台。我尝试使用自定义视口,但我只设法设置它的大小。我也尝试过使用setPosition(int screenX, int screenY) 方法,但无论我尝试什么,似乎视口总是以屏幕中间为中心。有谁知道如何设置视口在屏幕上的位置?

【问题讨论】:

    标签: java libgdx


    【解决方案1】:

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

        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)
    

    void update(int screenWidth, int screenHeight)
    

    调用上面的 update 版本,默认为 false

    【讨论】:

    • 看来我确实忘记更新了……我有种错过了什么的感觉。再问一个问题:如果我不移动相机,仅在屏幕的resize()方法中更新视口是否足够?
    • 我会在渲染中保持更新(为什么不呢?)但你自己试试;)
    • 我遇到了另一个问题。我以为视口的 setScreenPosition 方法可以让我将它移动到任何地方,但似乎无论我输入什么值,视口都定位在 (0, 0) 处。我不知道为什么会这样。每次更改后我都会更新。
    猜你喜欢
    • 2017-04-04
    • 2017-08-28
    • 2012-12-27
    • 2016-02-11
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 2016-03-27
    • 1970-01-01
    相关资源
    最近更新 更多