[英]Stage object won't center and scale to be same on every screen
我有两个问题似乎都很容易。
首先,我正在开发LibGDX游戏,但我的Table对象之一不会居中
Table table = new Table();
table.setFillParent(true);
table.add(preview).size(preview.getWidth(), preview.getHeight()).center().padBottom(40);
table.row();
table.add(last).size(last.getWidth(), last.getHeight()).center().left().padLeft(250);
table.add(next).size(next.getWidth(), next.getHeight()).center().right().padRight(250);
我尝试了上面的代码,但结果却像(我希望“关卡预览”居中)
问题2
在我的手机上,这些图像都非常适合。 但是在这部手机上它们更小,我如何将其缩放为每部手机上的相同大小,FitViewPort是否有用?
问题1:
更改
table.add(preview).size(preview.getWidth(), preview.getHeight()).center().padBottom(40);
至
table.add(preview).size(preview.getWidth(), preview.getHeight()).center().padBottom(40).colspan(2);
问题2:
FitViewport
可能会导致黑条,但图像会根据纵横比进行缩放。 如果要根据手机尺寸缩放图像,请尝试使用StretchViewport
。
为了使预览图像居中,它的单元格需要跨越所有列。 如果您希望图像完全适合,则无需尝试将单元格调整为图像大小。
而且,如果您希望两个按钮都位于中间,则使它们的每个单元格尽可能宽,然后将它们向中间的单元格一侧倾斜。
这样做:
table.setFillParent(true);
table.add(preview).colSpan(2).expandX().center().padBottom(40);
table.row();
table.add(last).expandX().right();
table.add(next).expandX().left();
ScreenViewport非常适合UI阶段,因为它可以产生清晰的文本。 但是不利的是,您需要准备好多个UI资产大小来加载,具体取决于设备分辨率。
另外,您可以将ExtendViewport用于您的UI,因此您只需要一个资产比例。
其余的视口类是垃圾(IMO):
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.