【问题标题】:LibGDX: How to draw in the area of the black bars of a FitViewport?LibGDX:如何在 FitViewport 的黑条区域绘制?
【发布时间】:2016-03-11 06:32:33
【问题描述】:

我得到了一个FitViewport,它具有虚拟宽度和虚拟高度。当屏幕的宽高比比我的虚拟分辨率黑条添加时。我想在这些信箱里画些东西。

我尝试这样做,但仅绘制了虚拟分辨率“内部”的对象,“外部”的对象不可见:

viewport = new FitViewport(VIRTUAL_WIDTH, VIRTUAL_HEIGHT, cam);
viewport.apply();

batch.setProjectionMatrix(cam.combined);

batch.begin();
batch.draw(texture, viewport.getRightGutterX(), 0);
batch.end();

如何在信箱内绘图?

【问题讨论】:

    标签: java libgdx viewport aspect-ratio


    【解决方案1】:

    您将需要第二个视口,可能是与您的 FitViewport 具有相同虚拟尺寸的 ExtendViewport。

    //create:
    fitViewport = new FitViewport(VIRTUAL_WIDTH, VIRTUAL_HEIGHT);
    extendViewport = new ExtendViewport(VIRTUAL_WIDTH, VIRTUAL_HEIGHT);
    
    //resize:
    fitViewport.update(width, height);
    extendViewport.update(width, height);
    
    //render:
    
    fitViewport.apply();
    batch.setProjectionMatrix(fitViewport.getCamera().combined);
    batch.begin();
    //draw game
    batch.end();
    
    extendViewport.apply();
    batch.setProjectionMatrix(extendViewport.getCamera().combined);
    batch.begin();
    //draw stuff in border
    batch.end();
    

    如果您想确保边框的内容不会与您的游戏重叠,您可以交换上面的绘制顺序。

    或者您可以使用 ExtendViewport 开始所有内容。

    【讨论】:

    猜你喜欢
    • 2015-04-04
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 2016-02-10
    • 2021-12-14
    • 1970-01-01
    • 2020-06-30
    • 1970-01-01
    相关资源
    最近更新 更多