Java LibGdx:我在加载大背景图像时遇到问题。我得到一个错误,说它不是两个正方形。有办法解决这个问题吗?

Java LibGdx:我在加载大背景图像时遇到问题。我得到一个错误,说它不是两个正方形。有办法解决这个问题吗?,java,load,textures,libgdx,assets,Java,Load,Textures,Libgdx,Assets,我正在尝试创建一个水平为380 X 10000的垂直滚动游戏。 当我创建纹理以加载图像时,出现以下错误: 原因:com.badlogic.gdx.utils.GdxRuntimeException:纹理宽度和高度必须为二的幂:380x10000 我知道我可以得到512X512的纹理来加载。那么,我需要做什么来加载这个背景图像呢 Assets{ public static Texture levels; public static TextureRegion levelsRegion; }

我正在尝试创建一个水平为380 X 10000的垂直滚动游戏。 当我创建纹理以加载图像时,出现以下错误: 原因:com.badlogic.gdx.utils.GdxRuntimeException:纹理宽度和高度必须为二的幂:380x10000 我知道我可以得到512X512的纹理来加载。那么,我需要做什么来加载这个背景图像呢

Assets{
public static Texture levels;
    public static TextureRegion levelsRegion;
}

Load{
    levels = loadTexture("data/levels.png"); <--------- Error occurs here.
        levelsRegion = new TextureRegion(background, 0, 0, 380, 10000); <--- Doesnt get to this point
}
资产{
公共静态纹理层次;
公共静态结构区域级区域;
}
装载{

levels=loadTexture(“data/levels.png”);wwooo 380x10000??您的目标是手机吗?如果您使用的是GL 1.1,那么使用GL2.0将解决您的-而不是“二次幂”问题。不太确定您的设备是否能够加载该纹理

PS:如果是这样的话,考虑拆分你的纹理。不是所有的设备都能加载10000像素宽的纹理!

使用

Texture.setEnforcePotImages(false)


然后,您可以加载非平方(非二长幂的精度)图像。虽然加载如此大的图像是个很糟糕的主意。只要将其分割成更小的部分,并在需要在屏幕上显示时使用它们。

是的,我将它放在android上。512 x512是最大的吗?如果你不打算全部显示,将10k像素加载到GPU上是没有意义的,所以一定要将纹理切掉分块。纹理大小的硬限制是特定于设备的,请参见+1,但我会给出+10!对于1920x1080像素的图像,这是我的解决方案