使 2 个视口相互依赖 - libgdx

Make 2 viewports depending on each other - libgdx

我有一个我觉得比较简单的问题。

我有 2 个 FitViewports,如果我调整游戏大小,两个 Viewports 都会调整大小。 效果很好:

  1. When I resize my window (smaller).

  2. But this happens when im resizing it to be bigger.

如您所见,白色背景的尺寸合适,中间的正方形也是-但我希望它与白色背景一样宽。

@Override
public void resize(int width, int height) {
    backViewport.update(width, height); //white background
    gameViewport.update(width, height); //square

}

我希望程序这样做:

@Override
public void resize(int width, int height) {
    backViewport.update(width, height); //white background
    gameViewport.update(backViewport.getWidth(), backViewport.getWidth());

}

获取新的背景宽度大小并将我的 gameViewport 设置为相同。 我会做 width- 和 height- .getWidth(),因为我希望它是正方形的。

这不起作用,因为它在 y 轴上拉伸我的正方形。

感谢您的宝贵时间,希望有人知道解决方案。

编辑:通过这样做,

gameViewport.setScreenSize(backViewport.getScreenWidth(), backViewport.getScreenWidth());

我实现了正确大小的正方形,但我仍然不知道如何将它移回背景的中心。

这里是wiki,再看一遍
https://github.com/libgdx/libgdx/wiki/Viewports

您有一个方形视口和一个矩形视口。您的视口按预期工作,它们正在尝试适应屏幕。您遇到了问题,因为它们的尺寸不同。

我不认为你想使用 2 个单独的视口,如果它们的行为相同的话。而是使用一个视口并像这样绘制;

draw(x, y + bottomPadding)   

绘制游戏时。