1

我想知道是否可以在 XNA 中使用 Texture2D.FromStream() 从流中间加载纹理。这个想法是我有一个动画系统,可以将肢体的纹理直接保存到包含其他信息的文件中,比如时间、名称等......我的问题是在尝试加载文件时,当它到达加载纹理。我得到一个 InvalidOperationExecption,但没有真正的细节。到目前为止,这是我的代码:

写作:

...         
//writes the name
binWriter.Write(name);

if (texture != null)
{
    binWriter.Write(true);
    //save the texture into the stream
    texture.SaveAsPng(binWriter.BaseStream, texture.Width, texture.Height);
}
else
    binWriter.Write(false);

//writes the ID of the parent limb
binWriter.Write(system.getParentID((Limb)parent));
...

阅读:

...
string name = binReader.ReadString();

Texture2D tex = null;

//gets the texture if it exists
bool texture = binReader.ReadBoolean();
if (texture)
    tex = Texture2D.FromStream(graphics, binReader.BaseStream);

//finds the index of the parent limb
int parentID = binReader.ReadInt32();
...

有任何想法吗?

-编辑-解决了!我使用了 getData() 和 setData() 方法,并将数据写入和读取为一个 uint 数组。

4

0 回答 0