我正在开发一个使用libGDX框架的游戏,但我在尝试将其适应不同的分辨率时遇到了一些问题。我将举例说明我遇到的问题。
我使用Scene2D来显示一个简单的菜单。该菜单有一些纹理图集加载纹理的按钮(按钮纹理为9patch)。在桌面上,分辨率为800x480,按钮看起来很不错(甚至是BitmapFont),但在Android中,我使用setViewport来保持宽度(800px),但是在保持宽高比的情况下缩放高度,我得到像素化图像。我认为这是因为我的移动设备更高分辨率。必须缩放整个舞台以使图像看起来像素化。
所以,我的问题是,解决这个问题的最佳方法是什么?如何支持不同的分辨率而不是像素艺术外观?
答案 0 :(得分:0)
您测试的Android设备的分辨率是多少?你说你已经使用了9补丁图像。除非您将它们设置为一个大小然后修改它们的比例(屏幕分辨率和视口大小之间的差异),否则这不应该产生像素化效果。如果您不想进行任何缩放,则应使用屏幕宽度或高度作为视口,并通过保持纵横比来计算另一个。这意味着您必须在运行时根据新视口构建所有对象的大小。
对于此类问题,没有一种方法适合所有解决方案,因此您必须找到适合您应用的解决方案。您可以将按钮大小定义为屏幕宽度或高度的百分比;或者将它们设置为固定值并调整它们之间的间距;或两者的组合(使对象部分更大并修改它们之间的空间)。