我开发和设计我的游戏资产(背景,按钮等),但是当我设计任何资产时,我不知道我设计了哪种屏幕尺寸? Android设备或iOS
设备中的许多屏幕尺寸不同。因此,如果我开始设计最大的屏幕,其他设备屏幕的尺寸将不好,旧设备上的资产将太重,如果我开始设计小屏幕,其他设备屏幕将是低分辨率(如果我使用)例如StrecthViewport
)。
例如:
stage = new Stage(new StretchViewport(480, 800));
Galaxy note 3(1080 x 1920)上的这一行是低分辨率
游戏资产是否有标准设计?
任何人都可以帮助我?
答案 0 :(得分:3)
有很多方法可以实现您的目标。这很大程度上取决于你创造的游戏,所以我只能简单地概述一下对我有用的东西:
创建比您支持的最大屏幕更大的资产。 F.E.你支持2560x1600,然后使用像3200x2000这样的东西。
为您支持的每个TEXTURE_SIZE创建一个TextureAtlas。智能手机的MAX_TEXTURE_SIZE可以加载到内存中。它通常是1024x1024,2048x2048,4096x4096(较新的手机和桌面图形卡甚至可能更支持8192x8192或更大) 我创建了3个TextureAtlas:4096,缩放比例为1:1,2048缩放比例为50%,1024缩放比例为25%。
在设备上阅读MAX_TEXTURE_SIZE,这个代码片段可以做到这一点。
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);
}
然后根据支持MAX_TEXTURE_SIZE加载TextureAtlas。
你甚至可以走得更远。只是一些想法:
您可以计算当前设备的完美Texel大小,并重新打包具有1:1屏幕像素拟合资产像素的TextureAtlas。然后从该地图集加载。
有些设备可能会接受4096纹理尺寸,但它们的屏幕非常小,因此2048版本可能也可以正常工作,然后加载较小的版本。