Java LibGDX针对不同的分辨率使用不同的资产,如Android
我有一款为Android开发的游戏,现在我的用户也想要一个iOS版本。我认为LibGDX会是更好的选择,因为它可以让我重用游戏中的Java代码,而且我已经有了一些经验 在我的游戏中,对于不同的设备密度,我有不同的图像大小(可绘制hdpi、可绘制xhdpi等) 因此,我的问题是:如何实现同样的效果,但使用LibGDX(如果需要更改,还要考虑iOS设备分辨率所需的新密度)Java LibGDX针对不同的分辨率使用不同的资产,如Android,java,android,ios,libgdx,Java,Android,Ios,Libgdx,我有一款为Android开发的游戏,现在我的用户也想要一个iOS版本。我认为LibGDX会是更好的选择,因为它可以让我重用游戏中的Java代码,而且我已经有了一些经验 在我的游戏中,对于不同的设备密度,我有不同的图像大小(可绘制hdpi、可绘制xhdpi等) 因此,我的问题是:如何实现同样的效果,但使用LibGDX(如果需要更改,还要考虑iOS设备分辨率所需的新密度) 谢谢。是的,你可以达到同样的效果,但它不会像Android那样自动运行,除非你也编写一些本机代码。我发现最好的管理方法就是自己动
谢谢。是的,你可以达到同样的效果,但它不会像Android那样自动运行,除非你也编写一些本机代码。我发现最好的管理方法就是自己动手: 1) 当应用程序启动时,您可以使用
Gdx.graphics.getHeight()
,getWidth()
,Gdx.graphics.getDensity()
2) 根据大小和密度,您可以将位置路径更改为加载资产的正确文件夹
3) 现在,当运行任何资源加载代码时,请确保它使用上述步骤中的预设路径,以便获得适合该显示大小/密度的正确资源。大多数情况下,您可以使用最大的图像,并使用来处理分辨率和纵横比。较大的图像将被缩小,这当然会导致一些细节损失 视口将自动将游戏世界显示的大小缩放到它显示的屏幕上。例如,
FitViewport(100100)
将创建一个显示100x100
游戏单位的视口。如果你想在1920 x 1080
设备上玩这个游戏,它会将100 x 100
游戏世界扩展到1080 x 1080
区域,并留下一个840 x 1080
的空条
游戏世界的大小与像素无关。你可以创建一个大小为0.5f x 0.5f
世界单位的敌人,并赋予其256 x 256
像素的纹理。视口将为您将其缩放到正确的大小
除非你想要一个像素完美的游戏,否则这应该足够好了。在一些较大屏幕但分辨率较低的设备上,由于过滤,您可能会得到一些较小的人工制品,为纹理设置过滤Texture.setFilter(TextureFilter.Nearest,TextureFilter.Linear)
可能会修复一些问题
在设计图形时,我所想到的是我的艺术中的像素应该大致代表或至少代表一个屏幕像素。通常我只画高清的完美像素,它在800 x 480
屏幕上看起来很好。如果您想挤出更多的性能,可以使用mipmap
,我认为TexturePacker
会使用正确的Filter
设置自动生成它们,但我没有使用它们的经验。这可以使用
com.badlogic.gdx.assets.loaders.resolvers.ResolutionFileResolver.
给你