首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libGDX :根据不同大小的屏幕设计游戏资产

问libGDX :根据不同大小的屏幕设计游戏资产
EN

Stack Overflow用户
提问于 2015-11-05 18:19:24
回答 1查看 793关注 0票数 3

我开发和设计资产(背景,按钮,.等等)我的游戏,但当我设计任何资产,我不知道我设计的屏幕大小?在安卓设备或iOS设备中,许多屏幕大小不同。因此,如果我以最大屏幕开始设计,其他设备屏幕的尺寸将不太好,旧设备上的资产将太重,如果我开始使用小屏幕设计,其他设备屏幕将是低分辨率(如果我使用StrecthViewport)。

例如:

代码语言:javascript
复制
stage = new Stage(new StretchViewport(480, 800));

银河注3 (1080 X 1920)上的这一行是低分辨率的。

游戏资产是否有标准的设计?

有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-06 09:31:02

有很多方法可以达到你的目标。这在很大程度上取决于你创造的游戏,所以我只能给你一个简单的概述什么对我有用:

创建比您支持的最大屏幕更大的资产。F.e.您支持2560x1600,然后使用类似于3200x2000的内容。

为您支持的每个TextureAtlas创建一个TEXTURE_SIZE。智能手机有一个可以加载到内存中的MAX_TEXTURE_SIZE。它通常是1024x1024,2048x2048,4096x4096 (更新的手机和桌面图形卡可能甚至更像8192 x8192或更高),然后我创建了3 TextureAtlas: 4096,1:1缩放,2048缩放到50%,1024扩展到25%。

在读取MAX_TEXTURE_SIZE的设备上,这个片段可以做到这一点。

代码语言:javascript
复制
public final static int maxTextureSize() {
        /**
         * See http://lwjgl.org/forum/index.php?topic=1314.0;wap2
         */
        IntBuffer max = BufferUtils.newIntBuffer(16);
        max.clear();
        Gdx.gl.glGetIntegerv(GL20.GL_MAX_TEXTURE_SIZE, max);
        return max.get(0);
    }

然后在支持TextureAtlas的基础上加载MAX_TEXTURE_SIZE。

你甚至可以更进一步。只是一些想法:

  • 您可以计算当前设备的完美Texel大小,并重新安装具有1:1屏幕像素匹配资产像素的TextureAtlas。然后从那本地图集上装东西。
  • 有些设备可能接受4096的纹理大小,但它们的屏幕非常小,所以2048版本可能也可以工作,然后加载较小的版本。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33551969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档