在XNA(Monogame)中加载大图像,非常不稳定

时间:2017-02-16 03:05:29

标签: c# xna

在我的游戏中,我正在尝试加载非常大的10,000 x 10,000 png图像(它们需要那么大,因为我使用大型非重复4k纹理作为背景),但是使用

加载它们
Texture2D[] CMap = new Texture2D[10]; //This texture is 4k 10,000*10,000
Texture2D[] Map = new Texture2D[10];  //This texture is just 2,500* 2,500, it's for collision

...

Map[i] = Content.Load<Texture2D>(PathString);
CMap[i] = Content.Load<Texture2D>(cPathString);

非常受欢迎。我时不时地得到这个错误

An unhandled exception of type 'System.InvalidOperationException' occurred in MonoGame.Framework.dll

Additional information: This image format is not supported

如何解决此错误的方法是简单地将声明剪切并粘贴到同一区域中的其他位置,但在其他声明之前或之后。我猜这是一个内存管理问题忽略了XNA(我实际上使用Monogame)很难处理如此大的纹理。

有时它会加载前两个地图纹理,但之后会给我一个错误,或者之后的第三个,所以我知道代码主要是因为某些原因它非常不稳定。那么我有什么办法可以解决这个问题吗?

另外,我在运行时加载这些纹理。我的所有地图一下子就会让我想到了。

1 个答案:

答案 0 :(得分:0)

我相信XNA只支持最大尺寸为4096x4096的纹理。任何比这更大的你必须拆分你的纹理。