【问题标题】:Multiple Stages on Same screen with different viewport LIBGDX同一屏幕上具有不同视口 LIBGDX 的多个阶段
【发布时间】:2019-01-08 02:39:58
【问题描述】:

我正在尝试扩展我的应用程序,使其在各种纵横比下都可以类似地工作。

我阅读了有关视口和相机的信息。并得出结论,我应该在我的游戏阶段使用 FitViewport,这样就不会拉伸任何资产。我将使用一些背景图像来填充由 fitviewport 引起的黑条。但问题是,每当我使用 FitViewport 以外的任何其他视口作为背景图像时,整个舞台(背景和主舞台)都会被拉伸,有没有办法摆脱 FitViewport 的黑白条?我尝试了所有的背景视口,即 StretchViewport、ScreenViewport、FillViewport。

我错过了一些非常琐碎的事情吗?或者是否可以在同一屏幕上设置多个不同的视口。

ps 我能够在同一个屏幕上设置两个不同大小的相同视口。 这是屏幕,我正在寻找fitviewport。注意我试图消除的顶部和底部的白条。

【问题讨论】:

    标签: camera libgdx viewport scene2d


    【解决方案1】:

    this answer 为我工作。仅供参考

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

    //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 开始所有内容。

    【讨论】:

      猜你喜欢
      • 2014-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多