android - Android 游戏的分辨率独立图形

标签 android libgdx resolution

我正在使用 libgdx 开发一款 Android 游戏,并将虚拟相机的宽度/高度定义为:800x1280。

我有 3 个测试设备:

  1. Nexus 5 1920 x 1080 显示屏 (445 ppi)
  2. Nexus S 480 x 800 像素 (233 ppi)
  3. 连结 10 2560 x 1600 (300 ppi)

我正在使用 GIMP 来开发图形。 我如何在 GIMP 中为 sprite、硬币和背景图片选择合适的大小,以免显示像素化?我不只是想选择极高的分辨率并增加不必要的应用程序大小。所有图形都必须是 2 的幂吗?

最佳答案

如果您使用 OpenGLES1.x,是的,纹理必须是 2 的幂。如果您使用 OpenGLES2.0,则不会强制它们,但有些设备无论如何都不支持它们。

建议您始终使用 2 次幂的纹理。尝试获取大 map 集中的所有图像(例如 1024x1024)。这会给你带来非常大的性能提升。

此外,我建议您为您已经在使用的相机视口(viewport)制作图形 (800x1280)。
并决定您是希望以不同的屏幕比例拉伸(stretch)图形,还是让 sprite 看起来相同但改变每个用户可以看到的世界范围。

首先,让您的视口(viewport)保持这样 (800x1280) 它会自动拉伸(stretch)。
第二,让你的长边固定并计算另一边。 (或者反过来,这取决于您是否希望用户在水平或垂直方向上看到更多或更少)。像这样:

cam = new OrthographicCamera(((float)Gdx.graphics.getWidth()/Gdx.graphics.getHeight())*800, 1280);

我建议您为 800x1280 制作它们,并对图像使用线性滤镜,这样它们在拉伸(stretch)/收缩时看起来不会像素化。

texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);

关于android - Android 游戏的分辨率独立图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20910790/

相关文章:

android - mdpi、hdpi、xhdpi 文件夹如何工作?

android - 以编程方式安装 APK - 返回值

css - GWT 中使用 CSS 自定义鼠标光标

java - 访问 gdx.utils.Array 会引发 ClassCastException

swift - 使用 Swift 5 xcode 13 将屏幕截图保存为 pdf 或高分辨率图像

android - 如何在不同的Android设备上绘制相同物理尺寸的圆?

java - Android获取GPS数据时能否将GPS数据写入CSV文件?

android - 使用标准 Activity 创建预填充联系人

android - 在 Android 上从 IPv4 地址合成 IPv4 映射的 IPv6 地址?

android - Libgdx 游戏 - 纹理缩放